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) 

在你的情况下,我会考虑使用设置而不是列表,以确保您只有唯一的值。 除非有时需要包含重复项。

在这种情况下,您不需要在列表中添加任何包装函数。