Spec-Zone.ru › Kotlin 2

BuilderInference

kotlin-stdlib/kotlin/BuilderInference

Начиная с Kotlin: 1.3

@Target(allowedTargets = [AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY])
@ExperimentalTypeInference
annotation class BuilderInference

Устарело

Предупреждение с версии 2.0

Ошибка с версии 2.5

Скрыто с версии 2.6

Аннотацию BuilderInference больше нельзя использовать. Вывод типов в builder-вызовах при необходимости включается автоматически.

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

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

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

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

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

и воспользуемся этим следующим образом:

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

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

Примечание: Эта аннотация устарела и больше не должна использоваться. Компилятор автоматически включает вывод типов в builder-вызовах, когда это необходимо.

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

Spec-Zone.ru

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