集合
在 Java10 之前,集合迭代的方式之一是:
for (String item : items) {
println(item)
}
而 Kotlin 具有类型推断的特性,不需要声明迭代元素类型,使用示例如下:
for (item in items) {
println(item)
}
在 Java10 中,新增了类型推断特性,使用示例如下:
for (var item : items) {
println(item)
}
但是相比之下,Kotlin 的写法设计更加简洁,并且 Kotlin 的类型推断要更灵活,而 Java10 的类型推断只适用于局部变量,不适用于类成员变量等。
Kotlin 也支持使用 lambda 表达式进行集合操作:
val fruits = listOf("banana", "avocado", "apple", "kiwifruit")
fruits
.filter { it.startsWith("a") }
.sortedBy { it }
.map { it.toUpperCase() }
.forEach { println(it) }
打印如下:
APPLE
AVOCADO
区间
Kotlin 中可以使用 in 关键字判断数字是否在区间内,一个判断x是否在 1-10 区间内的判断示例如下:
val x = 10
val y = 9
if (x in 1..y+1) {
println("fits in range")
}
打印为:
fits in range
还可以使用 !in 关键字判断数字是否在区间外:
val x = 10
val y = 9
if (x !in 1..y+1) {
println("fits in range")
}
区间还适用于集合迭代中:
for (x in 1..5) {
print(x)
}
打印为:
12345
创建类实例
在 Java 中创建类的实例,需要使用 new 关键字:
Rectangle rectangle = new Rectangle(5.0, 2.0);
Triangle triangle = new Triangle(3.0, 4.0, 5.0);
而在 Kotlin 中,类实例的创建不再需要使用 new 关键字:
val rectangle = Rectangle(5.0, 2.0)
val triangle = Triangle(3.0, 4.0, 5.0)
为什么 Kotlin 不再使用 new 关键字?
当我们调用一个函数时,使用示例如下:
override fun initView() {
setupToolbar(toolbar)
}
fun setupToolbar(toolbar: Toolbar){
}
而类的构造函数同样也是一个函数,在 Kotlin 的写法设计上,他们之间的区别更小。