51

私はグーグル検索を試みましたが、まともなforall例を見つけることができませんでした。それは何をするためのものか?なぜブール関数を取るのですか?

参考文献を教えてください(Scaladocを除く)。

4

3 に答える 3

91

このforallメソッドはp、ブール値を返す関数を取ります。のセマンティクスは次のとおりです。コレクション内のすべての場合にtrueをforall返します。truexp(x)

それで:

List(1,2,3).forall(x => x < 3)

つまりtrue、1、2、および3が3未満の場合、それ以外のfalse場合。この場合、falseすべての要素が3未満であるとは限らないため、評価されます。3は3以上です。

コレクションにtrueとなる要素が少なくとも1つある場合にexists返される、同様のメソッドがあります。truexp(x)

それで:

List(1,2,3).exists(x => x < 3)

意味: 1、2、および3の少なくとも1つが3未満の場合、それ以外のtrue場合。この場合、一部の要素が3未満であるため、評価されます。たとえば、1は3未満です。falsetrue

于 2012-09-22T20:00:09.193 に答える
4

Scalaスクリプトを使用してこの関数を操作する方法の簡単な例。

myScript.scalaでファイルを作成する

println(args.forall(p => (p.equals("a"))))

そしてそれを

scala myScript.scala a a a  // true
scala myScript.scala a b c  // false
于 2013-01-06T02:52:03.097 に答える
0

Scala'sは、論理積を適用したり、初期のブール値のリストにforall適用したりするための優れたツールでもあります。

val evalResults: List[Boolean] = List(evaluateFunc1(), evaluateFunc2(), evaluateFunc3(), evaluateFunc4(), evaluateFunc5())

evalResults.forall(result => result == true)
于 2018-06-17T12:04:55.347 に答える