每天三分钟了解Kotlin的秘密:1.基础入门(3)

集合

在 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 的写法设计上,他们之间的区别更小。

你可能感兴趣的:(每天三分钟了解Kotlin的秘密:1.基础入门(3))