Kotlin 语⾔⽂档Kotlin 语⾔⽂档
⽬录⽬录
概述概述
使⽤ Kotlin 进⾏服务器端开发
使⽤ Kotlin 进⾏ Android 开发
Kotlin JavaScript 概述
Kotlin 1.1 的新特性
开始开始
基本语法
习惯⽤法
编码规范
基础基础
基本类型
包
控制流
返回和跳转
类和对象类和对象
类和继承
属性和字段
接⼝
可⻅性修饰符
扩展
数据类
密封类
泛型
嵌套类
枚举类
对象表达式和对象声明
委托
委托属性
函数和 Lambda 表达式函数和 Lambda 表达式
函数
⾼阶函数和 lambda 表达式
内联函数
协程
其他其他
解构声明
集合
区间
4
4
5
6
7
15
15
20
24
26
26
31
33
36
38
38
42
45
47
49
53
54
55
60
61
63
66
67
72
72
77
81
84
88
88
90
91
2
类型的检查与转换
This 表达式
相等性
操作符符重载
空安全
异常
注解
反射
类型安全的构建器
参考参考
Grammar
Notation
Semicolons
Syntax
Lexical structure
兼容性
Java 互操作Java 互操作
在 Kotlin 中调⽤ Java 代码
Java 中调⽤ Kotlin
JavaScriptJavaScript
动态类型
Kotlin 中调⽤ JavaScript
JavaScript 中调⽤ Kotlin
JavaScript 模块
JavaScript 反射
⼯具⼯具
编写 Kotlin 代码⽂档
使⽤ Kotlin 注解处理⼯具
使⽤ Gradle
使⽤ Maven
使⽤ Ant
Kotlin 与 OSGi
编译器插件
常⻅问题常⻅问题
FAQ
与 Java 语⾔⽐较
与 Scala ⽐较【官⽅已删除】
93
95
96
97
100
102
104
108
111
117
117
117
117
117
125
126
129
129
136
142
142
144
147
149
152
153
153
156
158
163
168
171
172
176
176
179
180
3
概述概述
Kotlin ⾮常适合开发服务器端应⽤程序,允许编写简明且表现⼒强的代码, 同时保持与现有基于 Java 的技术栈的完全兼容性以及平滑的学习曲线:
表现⼒表现⼒:Kotlin 的⾰新式语⾔功能,例如⽀持类型安全的构建器 和委托属性,有助于构建强⼤⽽易于使⽤的抽象。
可伸缩性可伸缩性:Kotlin 对协程的⽀持有助于构建服务器端应⽤程序, 伸缩到适度的硬件要求以应对⼤量的客⼾端。
互操作性互操作性:Kotlin 与所有基于 Java 的框架完全兼容,可以让你保持 熟悉的技术栈,同时获得更现代化语⾔的优势。
迁移迁移:Kotlin ⽀持⼤型代码库从 Java 到 Kotlin 逐步迁移。你可以开始 ⽤ Kotlin 编写新代码,同时系统中较旧部分继续⽤ Java。
⼯具⼯具:除了很棒的 IDE ⽀持之外,Kotlin 还为 IntelliJ IDEA Ultimate 的插件提供了框架特定的⼯具(例如 Spring)。
学习曲线学习曲线:对于 Java 开发⼈员,Kotlin ⼊⻔很容易。包含在 Kotlin 插件中的⾃动 Java 到 Kotlin 的转换器 有助于迈出第⼀步。Kotlin ⼼印 通过⼀系
列互动练习提供了语⾔主要功能的指南。
Spring 利⽤ Kotlin 的语⾔功能提供更简洁的 API, 从版本 5.0 开始。在线项⽬⽣成器允许⽤ Kotlin 快速⽣成⼀个新项⽬。
Vert.x 是在 JVM 上构建响应式 Web 应⽤程序的框架, 为 Kotlin 提供了专⻔⽀持,包括完整的⽂档。
Ktor 是由 JetBrains 构建的 Kotlin 原⽣ Web 框架,利⽤协程实现 ⾼可伸缩性,并提供易于使⽤且合乎惯⽤法的 API。
kotlinx.html 是可在 Web 应⽤程序中⽤于构建 HTML 的 DSL。 它可以作为传统模板系统(如JSP和FreeMarker)的替代品。
通过相应 Java 驱动程序进⾏持久化的可⽤选项包括直接 JDBC 访问、JPA 以及使⽤ NoSQL 数据库。 对于 JPA,kotlin-jpa 编译器插件使 Kotlin 编
译的类适应框架的要求。
Kotlin 应⽤程序可以部署到⽀持 Java Web 应⽤程序的任何主机,包括 Amazon Web Services、 Google Cloud Platform 等。
这篇博⽂提供了在 Heroku上部署 Kotlin 应⽤程序的指南。
AWS Labs 提供了⼀个⽰例项⽬,展⽰了 Kotlin 编写 AWS Lambda 函数的使⽤。
Corda 是⼀个开源的分布式分类帐平台,由各⼤银⾏提供⽀持 ,完全由 Kotlin 构建。
JetBrains 账⼾,负责 JetBrains 整个许可证销售和验证 过程的系统 100% 由 Kotlin 编写,⾃ 2015 年⽣产运⾏以来,⼀直没有重⼤问题。
使⽤ Http Servlet 创建 Web 应⽤程序和 使⽤ Spring Boot 创建 RESTful Web 服务教程 将向你展⽰如何在 Kotlin 中构建和运⾏⾮常⼩的 Web 应
⽤程序。
关于更深⼊的介绍,请查看本站的参考⽂档及 Kotlin ⼼印。
使⽤ Kotlin 进⾏服务器端开发
—
—
—
—
—
—
使⽤ Kotlin 进⾏服务器端开发的框架
—
—
—
—
—
部署 Kotlin 服务器端应⽤程序
Kotlin ⽤于服务器端的⽤⼾
下⼀步
—
—
4
Kotlin ⾮常适合开发 Android 应⽤程序,将现代语⾔的所有优势带⼊ Android 平台⽽不会引⼊任何新的限制:
兼容性兼容性:Kotlin 与 JDK 6 完全兼容,保障了 Kotlin 应⽤程序可以在较旧的 Android 设备上运⾏⽽⽆任何问题。Kotlin ⼯具在 Android Studio 中会完
全⽀持,并且兼容 Android 构建系统。
性能性能:由于⾮常相似的字节码结构,Kotlin 应⽤程序的运⾏速度与 Java 类似。 随着 Kotlin 对内联函数的⽀持,使⽤ lambda 表达式的代码通常⽐⽤
Java 写的代码运⾏得更快。
互操作性互操作性:Kotlin 可与 Java 进⾏ 100% 的互操作,允许在 Kotlin 应⽤程序中使⽤所有现有的 Android 库 。这包括注解处理,所以数据绑定和
Dagger 也是⼀样。
占⽤占⽤:Kotlin 具有⾮常紧凑的运⾏时库,可以通过使⽤ ProGuard 进⼀步减少。 在实际应⽤程序中,Kotlin 运⾏时 只增加⼏百个⽅法以及 .apk ⽂件
不到 100K ⼤⼩。
编译时⻓编译时⻓:Kotlin ⽀持⾼效的增量编译,所以对于 清理构建会有额外的开销,增量构建通常与 Java ⼀样快或者更快。
学习曲线学习曲线:对于 Java 开发⼈员,Kotlin ⼊⻔很容易。包含在 Kotlin 插件中的⾃动 Java 到 Kotlin 的转换器 有助于迈出第⼀步。Kotlin ⼼印 通过⼀系
列互动练习提供了语⾔主要功能的指南。
Kotlin 已被⼀些⼤公司成功采⽤,其中⼀些公司分享了他们的经验:
Pinterest 已经成功地将 Kotlin 引⼊了他们的应⽤程序中,每个⽉有 1 亿 5 千万⼈使⽤。
Basecamp 的 Android 应⽤程序是 100% Kotlin 代码,他们报告了程序员幸福的 巨⼤差异,以及⼯作质量和速度的巨⼤改善。
Keepsafe 的 App Lock 应⽤程序也已转换为 100% Kotlin, 使源代码⾏数减少 30%、⽅法数减少 10%。
Kotlin 团队为 Android 开发提供了⼀套超越标准语⾔功能的⼯具:
Kotlin Android 扩展是⼀个编译器扩展, 可以让你摆脱代码中的 findViewById() 调⽤,并将其替换为合成的编译器⽣成的 属性。
Anko 是⼀个提供围绕 Android API 的 Kotlin 友好的包装器的库 ,以及⼀个可以⽤ Kotlin 代码替换布局 .xml ⽂件的 DSL。
下载并安装 Android Studio 3.0 预览版,其中包含开箱即⽤的 Kotlin ⽀持。
按照 Android 与 Kotlin ⼊⻔教程 创建你的第⼀个 Kotlin 应⽤程序。
关于更深⼊的介绍,请查看本站的参考⽂档及 Kotlin ⼼印。
另⼀个很好的资源是 Kotlin for Android Developers, 这本书会引导你逐步完成在 Kotlin 中创建真正的 Android 应⽤程序的过程。
检出 Google 的 Kotlin 写的⽰例项⽬。
使⽤ Kotlin 进⾏ Android 开发
—
—
—
—
—
—
Kotlin ⽤于 Android 的案例学习
—
—
—
⽤于 Android 开发的⼯具
—
—
下⼀步
—
—
—
—
—
5