Spec-Zone.ru › Kotlin 1.7

BuilderInference

kotlin-stdlib / kotlin / BuilderInference
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)
@Target([AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY]) @ExperimentalTypeInference annotation class BuilderInference

Позволяет выводить общие аргументы типа функции из вызовов в аннотированном параметре функции этой функции.

При размещении этой аннотации на общем параметре функции она позволяет выводить общие аргументы типа этой функции из передаваемого в этот параметр лямбда-выражения.

Вызовы, влияющие на вывод типов, являются либо членами типа получателя аннотированного параметра функции, либо расширениями для этого типа. Расширения должны быть аннотированы @BuilderInference.

Пример: мы объявляем

fun <T> sequence(@BuilderInference block: suspend SequenceScope<T>.() -> Unit): Sequence<T>

и используем её так

val result = sequence { yield("result") }

Здесь аргумент типа полученного последовательности выводится как String из аргумента функции SequenceScope.yield, которая вызывается внутри лямбда-выражения, переданного в sequence.

Примечание: эта аннотация находится в стадии эксперимента, см. ExperimentalTypeInference, чтобы узнать, как включить её.

Конструкторы

Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)

<init>

Позволяет выводить общие аргументы типа функции из вызовов в аннотированном параметре функции этой функции.

BuilderInference()

© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-builder-inference/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API