Kotlin 1.8.0 版本已經(jīng)正式發(fā)布,以下是該版本更新中的一些主要內(nèi)容:
針對 JVM 的新實驗性功能:遞歸復制或刪除目錄內(nèi)容
Kotlin 1.8.0 為java.nio.file.Path
引入了兩個新的擴展函數(shù):copyToRecursively()
和deleteRecursively()
,它們允許你以遞歸方式:-
將一個目錄及其內(nèi)容復制到另一個目的地
-
刪除一個目錄和它的內(nèi)容
用于java.nio.file.path
的這些新函數(shù)是實驗性的。要使用它們,你需要選擇加入@OptIn(kotlin.io.path.ExperimentalPathApi::class)
或@kotlin.io.path.ExperimentalPathApi
。另外,你也可以使用編譯器選項-opt-in=kotlin.io.path.ExperimentalPathApi
。
改進了 kotlin-reflect 的性能
利用kotlin-reflect
現(xiàn)在是用 JVM target 1.8 編譯的這一事實,我們將內(nèi)部緩存機制遷移到 Java 的ClassValue
。以前我們只緩存KClass
,但現(xiàn)在我們也緩存了KType
和KDeclarationContainer
。這些變化使得調(diào)用typeOf()
時的性能得到了明顯的改善。新增 -Xdebug 編譯器選項,以獲得更好的調(diào)試體驗
Kotlin 1.8.0 增加了一個新的-Xdebug
編譯器選項,它可以禁用優(yōu)化以獲得更好的調(diào)試體驗。目前,該選項禁用了 coroutines 的 "已優(yōu)化" 功能。在未來,當我們添加了更多的優(yōu)化功能后,這個選項也將禁用它們。
kotlin-stdlib-jdk7
和kotlin-stdlib-jdk8
合并為kotlin-stdlib
在 Kotlin 1.8.0 中,標準庫(kotlin-stdlib
、kotlin-reflect
和kotlin-script-*
)是用 JVM target 1.8 編譯的。此前,標準庫是以 JVM target 1.6 編譯的。Kotlin 1.8.0 不再支持 JVM targets 1.6 和 1.7。因此,你不再需要在構(gòu)建腳本中單獨聲明kotlin-stdlib-jdk7
和kotlin-stdlib-jdk8
,因為這些工件的內(nèi)容已經(jīng)并入kotlin-stdlib
。改進了 Objective-C/Swift 的互操作性
為了使 Kotlin 與 Objective-C 和 Swift 更具有互操作性,1.8.0 增加了三個新的注解:-
@ObjCName
允許你在 Swift 或 Objective-C 中指定一個更習慣的名字,而不是重新命名 Kotlin 聲明。 -
@HiddenFromObjC
允許你從 Objective-C 中隱藏一個 Kotlin 聲明 -
@ShouldRefineInSwift
對于用 Swift 編寫的包裝器替換 Kotlin 聲明很有用
與 Gradle 7.3 兼容
Kotlin 1.8.0 完全支持 Gradle 7.2 和 7.3 版本,這個版本帶來了很多變化:-
將 Kotlin 編譯器選項作為 Gradle 惰性屬性公開
-
提高了最小支持版本
-
能夠禁用 Kotlin 守護程序的回退策略
-
強制檢查相關(guān)的 Kotlin 和 Java 編譯任務的 JVM target 兼容性是否相等
-
SWIFT
+關(guān)注
關(guān)注
0文章
116瀏覽量
23802 -
kotlin
+關(guān)注
關(guān)注
0文章
60瀏覽量
4193
原文標題:Kotlin 1.8.0發(fā)布,改進性能和Swift的互操作性
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論