KotlinConf ’23 扼要重述

269 阅读3分钟

我正在参加「掘金·启航计划

KotlinConf ’23 扼要重述

KotlinConf是JetBrains为对Kotlin编程语言和相关技术感兴趣的开发者举办的主要活动。它包括讲座、研讨会和交流机会。23年的活动是在阿姆斯特丹举行的。

KotlinConf让我们再次看到Github上的Kotlin软件库数量是如何持续大幅增长的。

0_gKKI09dHggZ0ziNx.jpg

KotlinKotlin无处不在!

主要是由于AndroidKotlin才被大量采用是真的吗?在下面的图表中,我们可以了解到使用比例的情况。

1_1Ggqi51QoJSGnihHNWPjBw.webp

Kotlin出现在Play Store中95%的最常用的应用程序中 🙀

0_3zSKQ9I9nsR9_x3q.jpg

Google在其项目中广泛使用Kotlin。正如这篇文章所指出的,其45%的工程师使用Kotlin,并且正在为他们所有的工具创建集成,以便它们可以与Kotlin一起使用。

0_989ijGjJ2x9pG433.jpg

Kotlin 2.0越来越近,编译时间的性能得到了改善。我们将有一个下一个版本1.9,然后我们将有版本 1̶.̶1̶0̶ 2.0.

Kotlin团队非常重视社区的反馈,一直在为K2编译器开发一个新的架构,以减少编译器前端呈现的瓶颈。

1_zahkWHPzccs2yK8bAgp-JQ.webp

前端是编译器的一部分,它解析你的代码并进行语义分析、数据流分析、调用解析和类型推理。这是编译器中你,也就是开发者,与之互动最多的部分。它也是编译器的一部分,在你的IDE中持续运行,报告所有的错误和警告信息,并帮助你完成自动完成、语义感知检查、意图和重构等任务。

— Roman Elizarov

在Jetpack Compose正式推出约一年后,我们已经有23%的应用程序在Play Store中使用Jetpack Compose。

0_MPnpLRWxPjsrQ9-N.jpg

Kotlin DSL

Groovy将与Java一起分享第二名的位置,在即将到来的Android Studio版本中,我们将默认拥有Kotlin DSL。

1_ATe3CxoICsUXYpEQiLllTQ.webp

最想要的功能

1_8mAan7ratt_Tp57zpoiJTw.webp

静态扩展

目前,如果我们想通过扩展为一个类添加一个静态函数,就必须在该类中定义一个同伴对象

例如:

fun main() {
    MyFile.greet("Hello from Kotlin")
}

fun MyFile.Companion.greet(message: String) {
    println(message)
}

class MyFile {
    companion object {
      // empty companion object body
    }
}

但是当我们想把它应用于第三方类时,情况就不一样了,我们没有可能做到这一点。

因此,假设我们想为File类创建一个静态扩展,我们的代码将无法编译,如下所示:

1_sI6_KnEn73SoDycEe5EXhw.webp

所以静态扩展为这些情况提供了一个解决方案,使用的语法是:

1_0ser-SM6RNKzvOW-SHGxsQ.webp

集合字面值常量

集合字面值常量是现代编程语言中常用的特性,比如Python、JS、Go、Swift和Rust,这里只举几个例子。如果没有集合字面意义,你将不得不用心记住一个单独的函数来创建每一种类型的集合,如listOf, mapOf, setOf, intArrayOf等。

1_w32faxIlPCNQt3asIkcdqg.webp

基于命名解析

在Kotlin中,你可以将一个类解构为变量,问题是当属性的顺序被颠倒时很容易出错,比如说是重构的产物,kotlin团队正在努力解决这个问题,有可能在kotlin 2.0版本之后会出现。

1_Sqcl0b0IOWAOgmJpQwYy-Q.webp

上下文接收器

1_wioBCwAHOrz9Km8tFDZFeA.webp

自从它在kotlin 1.6.20的实验阶段发布以来,已经得到了很多反馈,他们希望在kotlin 2.0的第一个版本中有一个稳定的版本。

你可以在这里查看更多

显式字段

显式字段通过定义一个单一的属性而不是单独的可变和不可变属性,解决了在一个类中创建多余的属性的问题。

1_Mj8LEgdi-cz-RwyET6OuvA.webp

无显式字段

1_ScO3DPlGcJzm2mAK8LAsvA.webp

有显式字段

Kotlin Multiplatform

Kotlin多平台将继续存在! 我们的想法是到2024年拥有稳定的生态系统。

1_CR3yAE4VgjF5gW36IeqZXw.webp

Compose Multiplatform

两个重要的公告:

第一个是桌面版的Compose已经稳定了。

1_5bmaJc1ywtBeXJQEVGeyIQ.webp

第二件事是Compose Multiplatform现在已经瞄准了iOS!

1_tZzUODHHBoMMGDSOQwCu5A.webp

来源

KotlinConf ’23