
4.2 遍历数组和列表
你可以在Kotlin中无缝地使用任何JDK集合类和接口。因此,也可以在Kotlin中使用Java的数组和java.util.List。在Kotlin中创建这些实例比在Java中更简单,并且可以更轻松地遍历这些集合中的值。
让我们首先创建一个数字数组并检查它的类型:

要创建一个值数组,使用属于kotlin包的arrayOf()函数。属于kotlin包的函数(例如kotlin.arrayOf())可以在不使用kotlin前缀或者不使用任何显式导入的情况下调用。
由于给定的所有值都是Int类型,因此本例中创建的数组是一个整数值的数组。要创建一个基本的int数组而不是一个Integer对象的数组,使用intArrayOf()函数。不管选择哪个函数,我们都可以像以前一样使用for(x in…)语法遍历数组中的值。

同样,你可以使用listOf()函数创建一个List<T>的实例,然后使用for遍历它的值:

就像我们在前面看到的迭代一样,变量e(集合的元素)是不可变的,这样形成了安全的迭代。
前面使用for的迭代提供了集合中的值。但有时,除了值之外,我们还需要索引。在像C这样的语言中,传统的for循环提供了索引,但不太容易提供值。在这个迭代中,我们很容易地得到了值,但是得到索引也不难。indices属性提供了一系列索引值。让我们用它来遍历一个字符串列表。

一旦从indices属性中得到了index值,我们就可以得到列表中该位置的值。

或者,我们可以使用withIndex()函数以及在3.4节中介绍的解构应用程序来一次性获得索引和位置,如下所示:

现在已经了解了如何在Kotlin中使用Java集合,以及如何更轻松地遍历值。在本书的后面,当讨论函数式编程风格时,我们将看到如何使用内部迭代器来实现更好的流畅性。
当遍历一组值时,我们通常希望处理这些值,有时会根据值或其类型来进行不同的处理。下面我们将看到方便的参数匹配语法将删除大量的样板代码。