Experimental Foreign Api
Начиная с Kotlin: 1.3
annotation class ExperimentalForeignApi@Target(allowedTargets = [AnnotationTarget.TYPEALIAS,AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.CLASS ] )
Помечает API, связанный с иностранными языками, как бета-версию.
Иностранный API включает все операции и классификаторы, необходимые для работы с неуправляемой и иностранной памятью, в том числе, помимо прочего, такие объявления, как CPointer, CPointed, StableRef и Pinned. Он также включает API библиотек C и Objective-C, за исключением тех, которые доступны в Kotlin по умолчанию (например, platform.posix.* или platform.Foundation.*).
Такой API не считается стабильным и имеет следующие известные ограничения и особенности:
Он либо не документирован, либо не имеет подробного и исчерпывающего описания.
Отсутствуют чёткая семантика поведения и явное соответствие между понятиями иностранного языка (например, указателем C) и соответствующим API для работы с ними (например, CPointer). Такие объявления могут иметь некорректное соответствие.
Отсутствует чёткое семантическое различие между похожими объявлениями.
Нет рекомендаций по передовым практикам и примеров использования.
Совместимость ABI и API обеспечивается в меру возможностей. Мы также по мере возможностей предоставляем путь миграции для изменений, нарушающих бинарную или исходную совместимость, включая надлежащий цикл устаревания, путь миграции и замену API вместо нарушения совместимости API.
Рекомендуется использовать этот API для обеспечения взаимодействия, но ограничивать и сужать область его доступности.
© 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/kotlinx.cinterop/-experimental-foreign-api/index.html