99

リストに文字列が存在するかどうかを確認し、それに応じてブール値を受け入れる関数を呼び出す必要があります。

ワンライナーでこれを達成することは可能ですか?

以下のコードは、私が得ることができる最高のものです:

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

strings.find(x=>x == myString) match {
  case Some(_) => myFunction(true)
  case None => myFunction(false)
}

より少ないコーディングでこれを行うことは可能だと確信していますが、方法がわかりません!

4

6 に答える 6

137

使うだけcontains

myFunction(strings.contains(myString))
于 2013-01-10T21:31:22.787 に答える
35

厳密な等価性を使用したくない場合は、exists を使用できます。


myFunction(strings.exists { x => customPredicate(x) })
于 2013-01-10T22:32:14.713 に答える
3

これは異なる述語でも機能するはずです

myFunction(strings.find( _ == mystring ).isDefined)
于 2015-07-20T14:38:29.960 に答える
2

あなたの場合、一意の値のみを持つようにするために、リストではなくセットを使用することを検討します。重複を含める必要がある場合を除きます。

この場合、リストの周りにラッパー関数を追加する必要はありません。

于 2015-10-04T08:45:20.943 に答える