Kotlin 基本介绍(二)
导读大纲
- 1.1 使用 Kotlin 工具
- 1.1.1 设置和运行 Kotlin 代码
- JAVA 到 KOTLIN 转换器
- 1.1.2 编译 Kotlin 代码
- KOTLIN/JVM 的编译过程
1.1 使用 Kotlin 工具
- 可以在线运行小片段或安装集成开发环境
1.1.1 设置和运行 Kotlin 代码
-
使用 IntelliJ IDEA 或 Android Studio 可以获得最佳体验
- 我们在此提供基本信息,但 Kotlin 网站上有最新的最佳教程
- 关于设置环境
-
使用 KOTLIN 在线游戏场,无需安装即可试用 KOTLIN
- 尝试Kotlin的最简单方法是无需安装或配置
- 在那里您可以编写、编译和运行小型 Kotlin 程序
- 此外,Kotlin 文档
- 也有几个交互式示例,可以在浏览器中直接运行
- 这些都是运行简短 Kotlin 代码片段的最快方法
- 但它们提供的帮助和指导较少
- 这是一个非常简约的开发环境,缺少一些方便的功能,比如自动完成或检查功能
- 这些功能可以告诉你如何改进 Kotlin 代码
- 网页版还不支持通过标准输入流进行用户交互
- 也不支持处理文件和目录
-
Kotlin 的 IntelliJ IDEA 插件是与 Kotlin 语言同步开发的
- 它是一个功能齐全的 Kotlin 开发环境
- 它成熟稳定,为 Kotlin 开发提供一套完整的工具
- IntelliJ IDEA和Android Studio开箱即包含Kotlin插件,因此无需额外设置
- 在 IntelliJ IDEA 中,在"新建项目"对话框中选择 Kotlin,然后就可以开始
- 在 Android Studio 中,只需创建一个新项目,就能立即开始编写 Kotlin
- Kotlin/JVM 入门
JAVA 到 KOTLIN 转换器
-
要快速掌握一门新语言绝非易事,幸运的是,我们创建一个不错的小捷径
- 让您可以利用现有的 Java 知识加快学习和采用速度
- 这个工具就是 Java 到 Kotlin 的自动转换器
-
在您开始学习 Kotlin 时,转换器可以在您不记得确切语法时帮助表达某些内容
- 你可以用 Java 编写相应的代码段,然后将其粘贴到 Kotlin 文件中
- 转换器会自动将代码翻译成 Kotlin
- 这样做的结果并不总是最通俗易懂的,但它将是有效的代码
- 您将能在任务中取得进展
- 你可以用 Java 编写相应的代码段,然后将其粘贴到 Kotlin 文件中
-
该转换器还非常适合将 Kotlin 引入现有的 Java 项目
- 当您需要编写一个新类时,可以从一开始就使用 Kotlin
- 但是,如果您需要对现有类进行重大修改,可能也希望在此过程中使用Kotlin
- 这就是转换器发挥作用的地方
- 可以先将类转换为 Kotlin
- 然后使用现代语言的所有优势添加改动
-
在 IntelliJ IDEA 中使用转换器非常简单
- 既可以复制 Java 代码片段并将其粘贴到 Kotlin 文件中
- 也可以在需要转换整个文件时
- 执行"Convert Java File to Kotlin File"操作
1.1.2 编译 Kotlin 代码
-
Kotlin 是一种编译语言
- 这意味着在运行 Kotlin 代码之前,需要对其进行编译
-
Kotlin 代码可以编译成不同的目标:
- 在 JVM 上运行的 JVM 字节码(存储在 .class 文件中)
- 进一步转换 JVM 字节码并在 Android 上运行
- 原生目标,在不同操作系统上本地运行
- JavaScript(和 WebAssembly),在浏览器中运行
-
对于 Kotlin 编译器来说,生成的 JVM 字节码
- 是在 JVM 上运行还是进一步转换后在 Android 上运行并不重要
- 安卓运行时(ART)会将 JVM 字节码转换为 Dex 字节码并运行
- 在Android上如何运行
- 由于本系列教程的主要目标是 Kotlin/JVM
- 因此让我们更详细地讨论编译过程是如何工作的
KOTLIN/JVM 的编译过程
-
Kotlin 源代码通常存储在扩展名为 .kt 的文件中
- 为 JVM 目标编译 Kotlin 代码时,编译器会分析源代码并生成 .class
- 就像 Java 编译器所做的那样
- 生成的 .class 文件会被打包
- 然后使用您正在处理的应用程序类型的标准程序来执行
- 为 JVM 目标编译 Kotlin 代码时,编译器会分析源代码并生成 .class
-
在最简单的情况下
- 使用 kotlinc 命令从命令行编译代码
- kotlinc <source file or directory> -include-runtime -d <jar name>
- 使用 java 命令执行代码
- java -jar <jar name>
- 使用 kotlinc 命令从命令行编译代码
-
JVM 可以运行根据 Kotlin 代码编译的 .class 文件
- 而无需知道这些文件最初是用 Java 还是 Kotlin 编写的
- 然而,Kotlin 内置类及其 API 与 Java 中的不同
- 为了正确运行编译后的代码
- JVM 需要依赖额外的信息: Kotlin 运行时库
- 从命令行编译代码时,我们显式调用 -include-runtime
- 将运行时库包含到生成的 JAR 文件中
-
Kotlin 运行时库必须与应用程序一起发布
- 其中包含 Kotlin 基本类(如 Int 和 String)的定义
- 以及 Kotlin 对标准 Java APIs 的一些扩展
- Kotlin 构建过程的简化描述
- 其中包含 Kotlin 基本类(如 Int 和 String)的定义
-
此外,您还需要将 Kotlin 标准库作为应用程序的依赖项
- 从理论上讲,您可以在不使用标准库的情况下编写 Kotlin 代码
- 但在实践中,您永远不需要这样做
- 标准库包含 List、Map 和 Sequence 等基本类的定义
- 以及许多用于处理这些类的方法
- 从理论上讲,您可以在不使用标准库的情况下编写 Kotlin 代码
-
在大多数实际情况下,会使用 Gradle 或 Maven 等构建系统来编译代码
- Kotlin 与这些构建系统兼容
- 所有这些构建系统还支持混合语言项目
- 即在同一代码库中结合使用 Kotlin 和 Java
- Maven 和 Gradle 会将 Kotlin 运行时库和(最新版本的)Kotlin标准库
- 作为应用程序的依赖项,因此您无需显式地包含它们
- Gradle
- Maven
- 为了快速上手,您无需了解所有特殊情况,只需创建一个新项目
- 系统就会为您生成包含必要依赖项的正确构建文件