Scala检查列表中是否存在元素

Dar*_*ino 73 string scala list find

我需要检查列表中是否存在字符串,并调用一个相应接受布尔值的函数.

是否可以通过一个衬管实现这一目标?

下面的代码是我能得到的最好的代码:

val strings = List("a", "b", "c")
val myString = "a"

strings.find(x=>x == myString) match {
  case Some(_) => myFunction(true)
  case None => myFunction(false)
}
Run Code Online (Sandbox Code Playgroud)

我确信用较少的编码可以做到这一点,但我不知道怎么做!

Kim*_*bel 107

只是用 contains

myFunction(strings.contains(myString))
Run Code Online (Sandbox Code Playgroud)

  • 如果我不处理字符串但我需要检查一个值是否是许多可能的匹配中的任何一个怎么办? (2认同)
  • @tutuca,检查一下[check-if-values-in-list-is-part-of-string](http://stackoverflow.com/questions/16046146/checking-if-values-in-list-is-part -of字符串). (2认同)

Mat*_*hes 29

如果你不想使用严格的相等,你可以使用exists:


myFunction(strings.exists { x => customPredicate(x) })
Run Code Online (Sandbox Code Playgroud)


Tay*_*lrl 9

更容易!

strings contains myString
Run Code Online (Sandbox Code Playgroud)

  • 没问题。我明白。我认为它确实通过展示增加的简单性来增加价值。不过还是谢谢:) (4认同)
  • 这与[接受的答案](/sf/answers/998734481/)有什么不同? (3认同)
  • 基本相同,但不同之处在于: 1. 更少的括号 2. 更少的句点 3. 没有引用 myFunction 4. 更多的空白。总体; 我的答案 = 25 个字符 vs 接受的答案 = 38 个字符 (3认同)