scala - 当参数 `list.indexWhere` 为负数时出现 `from` 的奇怪结果

标签 scala scala-collections

这是 indexWhere 方法中的错误,还是对下面示例中的前四行有有意义的解释?

scala> List(1, 1, 4, 4, 4).indexWhere(_ > 3, -4)
res0: Int = -2

scala> List(1, 1, 4, 4, 4).indexWhere(_ > 3, -3)
res1: Int = -1

scala> List(1, 1, 4, 4, 4).indexWhere(_ > 3, -2)
res2: Int = 0

scala> List(1, 1, 4, 4, 4).indexWhere(_ > 3, -1)
res3: Int = 1

scala> List(1, 1, 4, 4, 4).indexWhere(_ > 3, 0)
res4: Int = 2

scala> List(1, 1, 4, 4, 4).indexWhere(_ > 3, 1)
res5: Int = 2

scala> List(1, 1, 4, 4, 4).indexWhere(_ > 3, 2)
res6: Int = 2

scala> List(1, 1, 4, 4, 4).indexWhere(_ > 3, 3)
res7: Int = 3

scala> List(1, 1, 4, 4, 4).indexWhere(_ > 3, 4)
res8: Int = 4

scala> List(1, 1, 4, 4, 4).indexWhere(_ > 3, 5)
res9: Int = -1

最佳答案

我认为理想情况下,如果您传递一个负数作为起始索引,您会看到一个 IllegalArgumentException (这到底意味着什么?),但也许人们认为边界的开销检查不值得。我在文档中没有看到任何指定的行为,所以不确定我是否会将其称为错误;更多的是“垃圾进来,垃圾出去”的情况。

关于scala - 当参数 `list.indexWhere` 为负数时出现 `from` 的奇怪结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19998974/

相关文章:

generics - 以通用方式操作 Scala 集合

scala - Sbt:如何为所有项目定义任务?

java - 如何在 Play Framework 中禁用http端口?

java - GAE JCache NumberFormatException,我需要编写 Java 来避免吗?

scala - 具有匿名函数和占位符的 val 和 var 的不同行为

scala - 如何退出scala 2.11.0 REPL?

Scala:如何合并 map 集合

scala - 延迟评估的索引序列类型

Scala map : mysterious syntactic sugar?

scala - 如何在Scala中的列表中找到最大值的索引?