Spec-Zone.ru › Kotlin 1.8

<init>

kotlin-stdlib / kotlin / BuilderInference / <init>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
BuilderInference()

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

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

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

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

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

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

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

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

Примечание: эта аннотация экспериментальная, см. ExperimentalTypeInference, как подключиться к ней.

© 2010–2023 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/-init-.html

Spec-Zone.ru

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