Scala检查元素是否出现在列表中
我需要检查一个string是否存在于一个列表中,并调用一个相应接受布尔值的函数。
是否可以用一个class轮来实现这一点?
下面的代码是我能得到的最好的代码:
val strings = List("a", "b", "c") val myString = "a" strings.find(x=>x == myString) match { case Some(_) => myFunction(true) case None => myFunction(false) }
我相信可以用较less的代码来做到这一点,但我不知道怎么做!
只要使用contains
myFunction(strings.contains(myString))
如果你不想使用严格的平等,你可以使用exists:
myFunction(strings.exists { x => customPredicate(x) })
这也应该用不同的谓词来工作
myFunction(strings.find( _ == mystring ).isDefined)
在你的情况下,我会考虑使用设置而不是列表,以确保您只有唯一的值。 除非有时需要包含重复项。
在这种情况下,您不需要在列表中添加任何包装函数。