Kotlin是一门与Swift类似的静态类型JVM语言,由JetBrains设计开发并开源。与Java相比,Kotlin的语法更简洁、更具表达性,而且提供了更多的特性,比如,高阶函数、操作符重载、字符串模板。它与Java高度可互操作,可以同时用在一个项目中。
\u0026#xD;\u0026#xD;按照JetBrains的说法,根据他们多年的Java平台开发经验,他们认为Java编程语言有一定的局限性和问题,而且由于需要向后兼容,它们不可能或很难得到解决。因此,他们创建了Kotlin项目,主要目标是:
\u0026#xD;\u0026#xD;- 创建一种兼容Java的语言 \u0026#xD;\u0026#xD;
- 编译速度至少同Java一样快 \u0026#xD;\u0026#xD;
- 比Java更安全 \u0026#xD;\u0026#xD;
- 比Java更简洁 \u0026#xD;\u0026#xD;
- 比最成熟的竞争者Scala还简单 \u0026#xD;
Ashraff Hathibelagal是一名喜欢研究新框架和SDK的独立开发者。近日,他撰文介绍了Kotlin的一些语法。按照他的说法,一个合格的Java程序员可以在很短的时间内学会使用Kotlin。
\u0026#xD;\u0026#xD;类与构造函数
\u0026#xD;\u0026#xD;Kotlin创建类的方式与Java类似,比如下面的代码创建了一个有三个属性的Person
类:
class Person{\u0026#xD; var name: String = \"\"\u0026#xD; var age: Int = 0\u0026#xD; var college: String? = null\u0026#xD;}\u0026#xD;
\u0026#xD;\u0026#xD;
可以看到,Kotlin的变量声明方式略有些不同。在Kotline中,声明变量必须使用关键字var
,而如果要创建一个只读/只赋值一次的变量,则需要使用val
代替它。另外,为了实现“空安全(null safety)”,Kotlin对可以为空的变量和不可以为空的变量作了区分。在上述代码中,变量name
和age
不可为空,而?
表明变量college
可以为空。定义完类之后,创建实例就非常简单了:
var jake = Person()\u0026#xD;
\u0026#xD;\u0026#xD;
注意,Kotlin没有关键字new
。实例创建完成后,就可以像在Java中一样为变量赋值了:
jake.name = \"Jake Hill\"\u0026#xD;jake.age = 24\u0026#xD;jake.college = \"Stephen's College\"\u0026#xD;
\u0026#xD;\u0026#xD;
变量可以采用上述方式赋值,也可以通过构造函数赋值,但后者是一种更好的编码实践。在Kotlin中,创建这样的一个构造函数非常简单:
\u0026#xD;\u0026#xD;class Person(var name: String, var age: Int, var college: String?) {\u0026#xD;}\u0026#xD;
\u0026#xD;\u0026#xD;
而实际上,由于构造函数中没有其它操作,所以花括号也可以省略,代码变得相当简洁:
\u0026#xD;\u0026#xD;class Person(var name: String, var age: Int, var college: String?)\u0026#xD;\u0026#xD;var jake = Person(\"Jake Hill\