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 兼容性是否相等
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
SWIFT
+关注
关注
0文章
89浏览量
23703 -
kotlin
+关注
关注
0文章
60浏览量
4144
原文标题:Kotlin 1.8.0发布,改进性能和Swift的互操作性
文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
新思科技成功实现与英特尔PCIe 6.0测试芯片的互操作性
新思科技PCIe 6.0 IP与英特尔 PCIe 6.0测试芯片实现互操作 在64GT/s 高速连接下成功验证互操作性,降低高性能计算SoC的集成风险 新思科技近日宣布,新思科技PCI
RH27C:精确的操作性放大数据表 ADI
电子发烧友网为你提供ADI(ADI)RH27C:精确的操作性放大数据表相关产品参数、数据手册,更有RH27C:精确的操作性放大数据表的引脚图、接线图、封装手册、中文资料、英文资料,RH27C:精确的操作性放大数据表真值表,RH2
发表于 10-08 16:12
由Java改为 Kotlin过程中遇到的坑
最近了解了下 Kotlin ,其中的很多语法糖很有意思,并且可以与 Java 无缝兼容。故尝试在一个 SpringBoot 工程上将部分类修改为 Kotlin ,下面记录了由 Java 改为
工具链之间的二进制互操作性应用说明
浮点硬件支持的目标上运行。
如果代码旨在与可能为没有硬件浮点支持的目标链接的其他代码或可能为基本PC编译的其他代码进行互操作,则必须为基本PC编译代码,或者必须为两个PCS变体提供代码的替代版本
发表于 08-29 07:59
光模块兼容性:确保通信系统的互操作性和可靠性
在现代通信系统中,光模块作为重要的传输组件,其兼容性对于确保通信系统的互操作性和可靠性至关重要。光模块的兼容性涉及到多个方面,包括物理接口、协议和性能等。本文将探讨光模块兼容性的重要性以及如何确保光模块在通信系统中的良好兼容性。
CiA组织CAN XL互操作性测试会议及最新进展
点击蓝字关注我们摘要SummaryCiA协会在密歇根州特洛伊组织了第三次CANXL互操作性测试。来自博世、Kvaser和Vector的IP核以及博世、英飞凌、恩智浦和德州仪器的CANSICXL收发器
KiCad 7.0.5发布
7.0.3及7.0.4由于存在bug,短时间上线后快速下架。目前官方已发布稳定版7.0.5,
可以去以下链接下载:https://downloads.kicad.org/kicad/windows
发表于 05-29 15:26
Linux 6.4-rc1发布了
https://lkml.org/lkml/2023/5/7/206
Linus Torvalds 本周初发布了 Linux 6.4-rc1,这也标志着令人兴奋的 Linux 6.4 周期合并窗口
发表于 05-25 08:18
KiCad 7.0.4发布啦!
7.0.3由于存在严重bug,没有向公众发布。今天官方已发布稳定版7.0.4
可以去以下链接下载:https://downloads.kicad.org/kicad/windows/explore
发表于 05-23 15:22
设备仿真模拟软件 QEMU 8.0 发布:改进对 ARM / RISC-V 架构支持
和 HPPA 平台带来各种新功能和改进。
QEMU (Quick Emulator)是业界主流的设备仿真模拟软件之一,可以在一种架构(如 X86 PC)的物理机上运行支持其它架构的操作系统和程序,从而
发表于 05-05 09:48
# 面向万物智联的应用框架的思考和探索(上)
(imperative)编程方式。2014年Apple推出了Swift语言,在简洁性,安全性,性能等方面都有进一步的提升。2019年,在Swift
发表于 05-04 10:48
评论