Kotlin 1.8.0 版本已經正式發布,以下是該版本更新中的一些主要內容:
針對JVM 的新實驗性功能:遞歸複製或刪除目錄內容
Kotlin 1.8.0 為 java.nio.file.Path
引入了兩個新的擴展函數:copyToRecursively()
和 deleteRecursively()
,它們允許你以遞歸方式:
- 將一個目錄及其內容複製到另一個目的地
- 刪除一個目錄和它的內容
這些函數作為備份過程的一部分可能非常有用。
用於
java.nio.file.path
的這些新函數是實驗性的。要使用它們,你需要選擇加入@OptIn(kotlin.io.path.ExperimentalPathApi::class)
或@kotlin.io.path.ExperimentalPathApi
。另外,你也可以使用編譯器選項-opt-in=kotlin.io.path.ExperimentalPathApi
。
改進了kotlin-reflect 的性能
利用 kotlin-reflect
現在是用JVM target 1.8 編譯的這一事實,我們將內部緩存機制遷移到Java 的 ClassValue
。以前我們只緩存 KClass
,但現在我們也緩存了 KType
和 KDeclarationContainer
。這些變化使得調用 typeOf()
時的性能得到了明顯的改善。
新增-Xdebug 編譯器選項,以獲得更好的調試體驗
Kotlin 1.8.0 增加了一個新的 -Xdebug
編譯器選項,它可以禁用優化以獲得更好的調試體驗。目前,該選項禁用了coroutines 的”已優化” 功能。在未來,當我們添加了更多的優化功能後,這個選項也將禁用它們。
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。因此,你不再需要在構建腳本中單獨聲明 kotlin-stdlib-jdk7
和 kotlin-stdlib-jdk8
,因為這些工件的內容已經併入 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 守護程式的回退策略
- 強制檢查相關的Kotlin 和Java 編譯任務的JVM target 兼容性是否相等
- ……
更多詳情可查看:https://kotlinlang.org/docs/whatsnew18.html
You may also like
相关贴文:
近期文章
- 2024 年如何學習 Shopify 開發
- Shopify 太邪惡了!不要使用! Shopify 不會釋放我的資金 |預言性警告 | Shopify 付款
- 10 個讓你大吃一驚的 ChatGPT 黑客!
- 配置 Shopify POS – 預覽
- 得獎者 Ürün Bulmak Áçin Áhtiyacın Olan TEK 影片 (Shopify Dropshipping)
- 如何免費打造 7 位數的 Shopify 商店
- META 商務套件:終極教學 2024
- [FIL] Shopify Rebellion 與名詞 (BO5) | DreamLeague 第 24 季北美封閉預選賽總決賽
- 教學完整:Crearea Magazinului pe Shopify(Curs Gratuit Pas cu Pas Dropshipping)
發佈留言