首先,Kotlin
是关于什么的?Kotlin
是一门把Java
平台作为目标的新的编程语言。它简洁、安全、优雅而且专注于和Java
代码间的互操作性。它几乎可以用于如今Java
遍及的所有地方:服务器端开发、Android
应用开发和更多其他的方面。Kotlin
能够很好的与现有的Java
库和框架并存。而且,它运行的性能不亚于Java
。
让我们以一个小案例为开始解释Kotlin
像什么。这个例子定义了一个 Person
类。它创建了一些Person
类的对象。然后找出其中年纪最大的一个Person
类对象并将其打印出来。即便是在这么一小段块代码中,你也能够看到Kotlin
的许多有趣的特性。我们对其中的一些代码做了高亮处理,以便你能够在书中的后续部分快速的找到它们。代码解释的比较粗略,但是如果你有些地方不能立刻明白也不要担心。我们会在后续的任意章节详细的讨论每一个概念。
如果你想尝试运行这个例子,最便捷的方式是使用在线的平台https://try.kotl.in/。输入这份示例代码并点击Run
按钮,代码将会被执行。代码如下:
package ch01.ATasteOfKotlin
data class Person(val name: String, // 1 数据类
val age: Int? = null) // 2 可为空的类型(Int?);变量声明的默认值
fun main(args: Array<String>) { // 3 顶层函数
val persons = listOf(Person("Alice"),
Person("Bob", age = 29)) // 4 命名声明
val oldest = persons.maxBy { it.age ?: 0 } // 5 lambda表达式;elvis操作符
println("The oldest is: $oldest") // 6 字符模板
}
// The oldest is: Person(name=Bob, age=29) // 7 自动生成`toString`方法
你声明一个简单的数据类。它带有两个属性: name
和age
。age
属性默认值为null
(如果它的值没有被指定的话)。当创建人名单时,你忽略了Alice的年龄,因此它的默认值null
被用上了。之后你使用maxBy
函数来查找名单中年龄最大的人。传递给函数的lambda表示式接收一个参数,同时,你使用it
作为默认的参数名。如果age
是null
的话,三元操作符?:
将返回0。由于Alice的年龄没有指定,三元操作符用0替代。最终Bob很荣幸的成为了年纪最大的人。
刚才所看到的一切,你都喜欢吗?阅读更多,学习更多,成为一个Kotlin专家吧!我们希望你很快就能够在你的项目中看到这样的代码,而不仅仅是在这本书中。