16.1 常见问题

原文链接: https://kotlinlang.org/docs/faq.html

16.1 常见问题

Kotlin 是一门简洁的多平台编程语言,由 JetBrains 开发。

什么是 Kotlin?

Kotlin 是一门开源的静态类型编程语言,目标平台包括 JVM、Android、JavaScript、Wasm 和 Native。它由 JetBrains 开发。该项目于 2010 年启动,并且很早就开源了。首个正式的 1.0 版本发布于 2016 年 2 月。

Kotlin 当前的版本是什么?

当前发布的版本是 2.4.20,于 2026 年 9 月 7 日发布。你可以在 GitHub 上找到更多信息。

Kotlin 是免费的吗?

是的。Kotlin 是免费的,它一直是免费的,并且将一直保持免费。它在 Apache 2.0 许可证下开发,源代码可在 GitHub 上获取。

Kotlin 是面向对象的语言还是函数式语言?

Kotlin 同时具备面向对象和函数式的构造。你可以用面向对象(OO)和函数式(FP)两种风格来使用它,也可以把两者的元素混合起来。由于 Kotlin 对高阶函数、函数类型和 lambda 等特性提供了一流的支持,如果你正在实践或探索函数式编程,它会是一个绝佳的选择。

相比 Java 编程语言,Kotlin 能给我带来哪些优势?

Kotlin 更简洁。粗略估计,代码行数大约可以减少 40%。它的类型安全性也更高——例如,对非空类型的支持使应用程序更不容易出现 NPE。智能转换、高阶函数、扩展函数以及带接收者的 lambda 等特性,让你既能编写富有表现力的代码,也便于创建 DSL。

Kotlin 与 Java 编程语言兼容吗?

是的。Kotlin 与 Java 编程语言 100% 互操作,并且我们非常重视确保你现有的代码库能够与 Kotlin 正确交互。你可以轻松地从 Java 调用 Kotlin 代码,也可以从 Kotlin 调用 Java 代码。这让采用 Kotlin 变得更加容易、风险更低。IDE 中还有一个自动化的 Java 到 Kotlin 转换器,可以简化现有代码的迁移。

我可以用 Kotlin 做什么?

Kotlin 可用于任何类型的开发,无论是后端、客户端 Web、Android 还是多平台库。随着 Kotlin/Native 的持续推进,它也在支持嵌入式系统、macOS 和 iOS 等其他平台。人们正把 Kotlin 用于移动端和服务端应用、使用 JavaScript 或 JavaFX 的客户端开发以及数据科学等等,这里只列举了其中一部分可能性。

我可以用 Kotlin 做 Android 开发吗?

是的。Kotlin 在 Android 上是被支持的一级语言。已经有数百个应用使用 Kotlin 进行 Android 开发,例如 Basecamp、Pinterest 等。更多信息请参阅 Android 开发资源。

我可以用 Kotlin 做后端开发吗?

是的。Kotlin 与 JVM 100% 兼容,因此你可以使用任何现有的框架,例如 Spring Boot、vert.x 或 JSF。此外,还有一些用 Kotlin 编写的专用框架,例如 Ktor。更多信息请参阅后端开发概览。

我可以用 Kotlin 做 Web 开发吗?

是的。对于后端 Web 开发,Kotlin 可以与 Ktor 和 Spring 等框架很好地配合,让你能够高效地构建服务端应用。此外,你还可以使用 Kotlin/Wasm 进行客户端 Web 开发。了解如何开始使用 Kotlin/Wasm。

我可以用 Kotlin 做桌面开发吗?

是的。你可以使用任何 Java UI 框架,例如 JavaFx、Swing 或其他框架。此外,还有一些 Kotlin 专用的框架,例如 TornadoFX。

我可以用 Kotlin 做 Native 开发吗?

是的。Kotlin/Native 作为 Kotlin 的一部分提供。它把 Kotlin 编译成无需虚拟机就能运行的本地代码。你可以在流行的桌面和移动平台上尝试它,甚至可以在一些 IoT 设备上使用。更多信息请参阅 Kotlin/Native 文档。

哪些 IDE 支持 Kotlin?

Kotlin 在 IntelliJ IDEA 和 Android Studio 中开箱即用地获得完整支持,并配有 JetBrains 开发的官方 Kotlin 插件。你还可以安装官方的 Visual Studio Code 的 JetBrains Kotlin 扩展,它由 Kotlin Language Server 提供支持,目前处于 Alpha 阶段。

其他 IDE 和代码编辑器只有 Kotlin 社区支持的插件。

你也可以试试 Kotlin Playground,在浏览器中编写、运行和分享 Kotlin 代码。此外还有命令行编译器可用,它为编译和运行应用程序提供了直接的支持。

哪些构建工具支持 Kotlin?

在 JVM 方面,主要的构建工具包括 Gradle 和 Maven。此外还有一些面向客户端 JavaScript 的构建工具。

Kotlin 会编译成什么?

当以 JVM 为目标时,Kotlin 会生成与 Java 兼容的字节码。

当以 JavaScript 为目标时,Kotlin 会转译为 ES5.1,并生成与 AMD、CommonJS 等模块系统兼容的代码。

当以 Native 为目标时,Kotlin 会(通过 LLVM)生成平台专用的代码。

Kotlin 面向哪些 JVM 版本?

Kotlin 允许你选择用于执行的 JVM 版本。默认情况下,Kotlin/JVM 编译器生成与 Java 8 兼容的字节码。如果你想利用较新 Java 版本中提供的优化,可以显式指定 9 到 26 之间的目标 Java 版本。请注意,在这种情况下,生成的字节码可能无法在更低版本上运行。从 Kotlin 1.5 开始,编译器不再支持生成与 Java 8 以下版本兼容的字节码。

Kotlin 难学吗?

Kotlin 并不难。Kotlin 受到 Java、C#、JavaScript、Scala 和 Groovy 等现有语言的启发。我们努力确保 Kotlin 易于学习,让人们能够轻松上手,在几天之内就能读写 Kotlin。学习地道的 Kotlin 写法并使用它的一些更高级特性可能需要更长一点的时间,但总体而言它并不是一门复杂的语言。更多信息请参阅我们的学习资料。

有哪些公司在使用 Kotlin?

使用 Kotlin 的公司多到无法一一列举,但一些较为知名的公司已通过博客文章、GitHub 仓库或演讲公开表明它们对 Kotlin 的使用,其中包括 Square、Pinterest 和 Basecamp。

谁在开发 Kotlin?

Kotlin 由 JetBrains 的工程师团队(目前团队规模 100 人以上)开发。首席语言设计师是 Michail Zarečenskij。除了核心团队之外,GitHub 上还有 250 多名外部贡献者。

在哪里可以了解更多关于 Kotlin 的信息?

最好的起点是我们的网站。要开始使用 Kotlin,你可以安装一个官方 IDE,或者在线试用。

有关于 Kotlin 的书吗?

Kotlin 有大量可用的书籍。其中一些我们已经审阅过,可以推荐作为入门读物,它们列在书籍页面上。更多书籍请参阅社区维护的 kotlin.link 列表。

有可用的 Kotlin 在线课程吗?

你可以通过 JetBrains Academy 的 Kotlin Core 课程在学习 Kotlin 核心知识的同时创建可运行的应用程序。

你还可以参加的其他一些课程:

你也可以查看我们 YouTube 频道上的其他教程和内容。

Kotlin 有社区吗?

是的!Kotlin 拥有一个非常活跃的社区。Kotlin 开发者们聚集在 Kotlin 论坛、StackOverflow 上,更活跃的还有 Kotlin Slack(截至 2020 年 4 月已有近 30000 名成员)。

有 Kotlin 活动吗?

是的!现在有许多专门围绕 Kotlin 的用户组和聚会。你可以在网站上找到一个列表。此外,世界各地还有社区组织的 Kotlin Nights 活动。

有 Kotlin 大会吗?

是的!KotlinConf 是 JetBrains 主办的年度大会,它汇集了来自世界各地的开发者、爱好者和专家,分享他们在 Kotlin 方面的知识和经验。

除了技术演讲和工作坊,KotlinConf 还提供社交机会、社区互动和社交活动,让参会者能够与其他 Kotlin 爱好者建立联系、交流想法。它是在 Kotlin 生态系统中促进协作和社区建设的平台。

Kotlin 也在世界各地的不同会议上被介绍。你可以在网站上找到一份即将举行的演讲列表。

Kotlin 在社交媒体上有账号吗?

是的。订阅 Kotlin YouTube 频道,并在 Twitter 或 Bluesky 上关注 Kotlin。

还有其他在线 Kotlin 资源吗?

网站上有许多在线资源,包括社区成员制作的 Kotlin Digests、新闻通讯、播客等。

可以从这里下载标志。使用这些标志时,请遵循压缩包内 guidelines.pdf 中的简单规则以及 Kotlin 品牌使用指南。

更多信息请参阅 Kotlin 品牌资产页面。