新语言特性
Kotlin 1.4 中引入的新语言特性改善了编写 Kotlin 代码的 “人机工程学”,例如:
Kotlin 接口的 SAM 转换
过去,只有 Java 编程语言中定义的功能接口(即只有一个单一抽象方法 - SAM)受益于 Kotlin 中的速记语法:
executor.execute { println(“This is shorthand for passing in a Runnable”) }
现在,Kotlin 1.4 可以将 Kotlin 接口标记为功能接口,并通过添加 fun
关键字让它们以类似方式工作:
fun interface Transformer<T, U> {
fun transform(x: T): U
}
val length = Transformer {
x: String -> x.length
}
Kotlin 1.4 版本说明 页面介绍了有关新语言特性的更多信息,如:混合命名和位置参数、尾部逗号、可调用引用改进,以及在循环中的 when
内部使用 break
和 continue
。
显式 API 模式
另外一个新特性是 显式 API 模式,面向 Kotlin 的库作者。
该模式强制执行 Kotlin 的某些语言属性,这些属性通常为可选,例如指定可见性修饰符,以及任何公共声明的显式键入,防止设计库的公共 API 时出错。官方文档说明了如何启用显式 API 模式并开始使用这些附加检查。
编译器的改进
上述语言特性是 Kotlin 1.4 中密切贴合开发者的一部分改动,其他大部分工作是以提高 Kotlin 编译器的整体质量和性能为主。
现在,所有开发者都可以利用的优势之一是 更强大的新类型推理算法 (默认启用),它可以在更多用例中自动推理类型,即使在复杂的场景下也支持智能转换,帮助开发者提高工作效率。
除了类型推断算法,Kotlin 1.4 还为 Kotlin/JVM 和 Kotlin/JS 带来了全新的编译器后端(Alpha 稳定阶段,可选),用IR 编译器 生成代码并用于 Kotlin/Native 后端。
Jetpack Compose 需要 Kotlin/JVM IR 后端。Google 工程师正在与 JetBrains 合作,希望将其打造成默认的 JVM 编译器后端。
因此,即使您当前不使用 Jetpack Compose 进行开发,我们同样建议您尝试全新 alpha 版 Kotlin/JVM 后端,如果在使用中有任何问题和功能请求请提交到 问题跟踪器。
在 Gradle 构建脚本中指定额外编译器选项即可启用新的 JVM IR 后端:
kotlinOptions.useIR = true
立即体验 Kotlin 1.4!
项目和 IDE 更新到 Kotlin 1.4 需要完成两个步骤。
首先,确保您使用最新版 Android Studio,以最大限度地提高性能优势以及与最新 Kotlin 插件的兼容性。当与 IDE 版本兼容的 Kotlin 1.4.0 插件可用时,Android Studio 将提示您,或者您也可以转到 Preferences | Plugins 手动触发更新。
启用插件后,您可以更新 build.gradle 脚本中的 Kotlin Gradle 插件版本,将应用项目升级以使用 Kotlin 1.4。根据插件的管理方式,您必须在顶层项目的 buildscript
块中更新版本:
buildscript {
dependencies {
classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.0”
}
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://i-blog.csdnimg.cn/blog_migrate/e535bb94eae891f58dcd2256d3599378.jpeg)
推荐学习资料
- 脑图
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!**