scala.collection.immutable.List定义indexWhere
,其中返回满足谓词p的此常规序列的第一个元素的索引,如果不存在则返回-1 :
def indexWhere(p: (A) ⇒ Boolean): Int
所以,我可以使用:
List("hello", "world").indexWhere(_.length > 10) // -1
但是,我更愿意获得Option[Int]
。我看到这是在scalaz.IList中实现的:
def indexWhere(f: A => Boolean): Option[Int]
如何使用scalaz.IList.indexWhere
?
我尝试导入scalaz,但我仍然得到-1。
import scalaz._
import std.list._
List("hello", "world").indexWhere(_.length > 10) // -1 instead of None
答案 0 :(得分:0)
val ilist = IList.fromList(List("hello", "world"))
ilist.indexWhere(_.length > 10) // None
ilist.indexWhere(_.length > 2) // Some(0)