1.1 Kotlin初体验
从小例子开始看看Kotlin代码长什么样子。
下面这个例子,
定义了一个Person类来表示"人",创建一个”人“的集合,查找其中年纪最大的人,并打印结果。
data class Person(val name:String , val age:Int?= null)
fun main(args: Array<String>) {
val persons = listOf(Person("kingsley") , Person("Deng" , age = 25))
val oldest = persons.maxBy{ it.age ?: 0}
println("The oldest is : $oldest")
}
声明了一个简单的数据类,包括其中两个属性:name和age.
age属性默认为null(如果没有指定)。在创建“人”列表时,忽略了kingsley的年龄,所以默认其值为Null。然后你调用了maxBy函数来查找列表中年纪最大的那个“人“。传递给这个函数的lamba表达式需要一个参数,使用it作为这个参数的默认名称。如果age属性为null,Elvis运算符(?:)会返回零。
1.2 Kotlin的主要特征
1.2.1 目标平台:服务器端、Android及任何Java运行的地方
Kotlin 最常见的应用场景:
- 编写服务器端代码(典型的代表是Web的应用后端)
- 创建Android设备上运行的移动应用
1.2.2 静态类型
与Java不同的是,Kotlin不需要在源代码中显式地声明每个变量的类型。
最简单的例子:
val x = 1
在声明这个变量时,由于变量初始化为整形值,Kotlin自动判断出它的类型是Int.编译器这种从上下文推断变量的能力被称作类型推导。
静态类型带来的好处:
- 性能 —— 方法调用速度更快,因为不需要再运行时才来判断调用的是哪个方法。
- 可靠性——编译器验证了程序的正确性,因而运行时崩溃的概率更低。
- 可维护性——陌生代码更容易维护,因为你可以看到代码中用到的对象的类型。
- 工具支持——静态类型使IDE能提供可靠的重构、精确的代码补全以及其他特性。