📜  带有示例的 Scala 迭代器 indexWhere() 方法(1)

📅  最后修改于: 2023-12-03 15:39:26.480000             🧑  作者: Mango

带有示例的 Scala 迭代器 indexWhere() 方法

Scala 是一种高级的编程语言,具有类似于 Java 和 Python 的语法和功能。其中,Scala 迭代器提供了一些用于访问集合的方法。其中之一是 indexWhere() 方法,它允许您找到一个元素在迭代器中的位置。

方法签名
def indexWhere(p: (A) => Boolean, from: Int): Int

该方法接受两个参数:

  • p:一个接受并返回布尔值的函数,用于检查每个元素是否符合条件。
  • from:一个可选的整数,用于指定搜索的起始位置。
方法返回值

如果找到符合条件的元素,则返回它在迭代器中的索引。否则,返回 -1。

示例

下面是一个示例,其中使用 indexWhere() 方法找到第一个偶数的索引:

val numbers = Iterator(1, 3, 4, 5, 6, 8, 9, 10)
val evenIndex = numbers.indexWhere(_ % 2 == 0)

if (evenIndex != -1) {
  println(s"First even number found at index $evenIndex")
} else {
  println("No even number found")
}

在上面的示例中,我们首先创建了一个整数的迭代器 numbers。然后我们使用 _ % 2 == 0 这个函数来检查数字是否是偶数。我们将这个函数作为参数传递给 indexWhere() 方法,让它在 numbers 中查找第一个偶数。

因为第一个偶数是在索引 2 处,所以我们的代码将打印 “First even number found at index 2”。

结论

Scala 的迭代器 indexWhere() 方法提供了一种简单而有效的方式来在迭代器中查找符合条件的元素的索引。正如示例所示,使用此方法只需几行代码。