Объявления на уровне пакета
Экспериментальный DSL для объявления пользовательских контрактов функций.
Типы
Начиная с Kotlin: 1.3
interface CallsInPlace : Effect
Эффект вызова функционального параметра непосредственно в месте вызова.
Начиная с Kotlin: 1.3
interface ConditionalEffect : Effect
Эффект, описывающий ситуацию, когда после наблюдения другого эффекта функции некоторое условие становится истинным.
Начиная с Kotlin: 1.3
interface ContractBuilder
Предоставляет область видимости, в которой можно использовать функции DSL контрактов, такие как returns, callsInPlace и т. д., чтобы описать контракт функции.
Начиная с Kotlin: 1.3
interface Effect
Представляет эффект вызова функции: непосредственно наблюдаемый, например обычное завершение функции, или побочный эффект, например вызов лямбда-параметра функции непосредственно в месте вызова.
Начиная с Kotlin: 1.3
annotation class ExperimentalContracts
Эта метка обозначает экспериментальный API для объявления контрактов и используется для явного включения этой возможности при объявлении контрактов пользовательских функций.
Начиная с Kotlin: 2.2
annotation class ExperimentalExtendedContracts
Эта метка обозначает экспериментальный API для объявления расширенных контрактов и используется для явного включения этой возможности при объявлении расширенных контрактов пользовательских функций.
Начиная с Kotlin: 1.3
enum InvocationKind : Enum<InvocationKind>
Указывает, сколько раз функция вызывает свой функциональный параметр непосредственно в месте вызова.
Начиная с Kotlin: 1.3
interface Returns : SimpleEffect
Описывает ситуацию, когда функция завершается обычным образом с заданным возвращаемым значением.
Начиная с Kotlin: 1.3
interface ReturnsNotNull : SimpleEffect
Описывает ситуацию, когда функция завершается обычным образом с любым ненулевым возвращаемым значением.
Начиная с Kotlin: 1.3
interface SimpleEffect : Effect
Эффект, который можно наблюдать после вызова функции.
Функции
Начиная с Kotlin: 1.3
inline fun contract(builder: ContractBuilder.() -> Unit)
Задает контракт функции.
© 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.contracts/index.html