我正在参加「掘金·启航计划」
KotlinConf ’23 扼要重述
KotlinConf是JetBrains为对Kotlin编程语言和相关技术感兴趣的开发者举办的主要活动。它包括讲座、研讨会和交流机会。23年的活动是在阿姆斯特丹举行的。
KotlinConf让我们再次看到Github上的Kotlin软件库数量是如何持续大幅增长的。
KotlinKotlin无处不在!
主要是由于AndroidKotlin才被大量采用是真的吗?在下面的图表中,我们可以了解到使用比例的情况。
Kotlin出现在Play Store中95%的最常用的应用程序中 🙀
Google在其项目中广泛使用Kotlin。正如这篇文章所指出的,其45%的工程师使用Kotlin,并且正在为他们所有的工具创建集成,以便它们可以与Kotlin一起使用。
Kotlin 2.0越来越近,编译时间的性能得到了改善。我们将有一个下一个版本1.9,然后我们将有版本 1̶.̶1̶0̶ 2.0.
Kotlin团队非常重视社区的反馈,一直在为K2编译器开发一个新的架构,以减少编译器前端呈现的瓶颈。
前端是编译器的一部分,它解析你的代码并进行语义分析、数据流分析、调用解析和类型推理。这是编译器中你,也就是开发者,与之互动最多的部分。它也是编译器的一部分,在你的IDE中持续运行,报告所有的错误和警告信息,并帮助你完成自动完成、语义感知检查、意图和重构等任务。
— Roman Elizarov
在Jetpack Compose正式推出约一年后,我们已经有23%的应用程序在Play Store中使用Jetpack Compose。
Kotlin DSL
Groovy将与Java一起分享第二名的位置,在即将到来的Android Studio版本中,我们将默认拥有Kotlin DSL。
最想要的功能
静态扩展
目前,如果我们想通过扩展为一个类添加一个静态函数,就必须在该类中定义一个同伴对象。
例如:
fun main() {
MyFile.greet("Hello from Kotlin")
}
fun MyFile.Companion.greet(message: String) {
println(message)
}
class MyFile {
companion object {
// empty companion object body
}
}
但是当我们想把它应用于第三方类时,情况就不一样了,我们没有可能做到这一点。
因此,假设我们想为File类创建一个静态扩展,我们的代码将无法编译,如下所示:
所以静态扩展为这些情况提供了一个解决方案,使用的语法是:
集合字面值常量
集合字面值常量是现代编程语言中常用的特性,比如Python、JS、Go、Swift和Rust,这里只举几个例子。如果没有集合字面意义,你将不得不用心记住一个单独的函数来创建每一种类型的集合,如listOf, mapOf, setOf, intArrayOf等。
基于命名解析
在Kotlin中,你可以将一个类解构为变量,问题是当属性的顺序被颠倒时很容易出错,比如说是重构的产物,kotlin团队正在努力解决这个问题,有可能在kotlin 2.0版本之后会出现。
上下文接收器
自从它在kotlin 1.6.20的实验阶段发布以来,已经得到了很多反馈,他们希望在kotlin 2.0的第一个版本中有一个稳定的版本。
你可以在这里查看更多
显式字段
显式字段通过定义一个单一的属性而不是单独的可变和不可变属性,解决了在一个类中创建多余的属性的问题。
无显式字段
有显式字段
Kotlin Multiplatform
Kotlin多平台将继续存在! 我们的想法是到2024年拥有稳定的生态系统。
Compose Multiplatform
两个重要的公告:
第一个是桌面版的Compose已经稳定了。
第二件事是Compose Multiplatform现在已经瞄准了iOS!