私はGoogle検索を試みましたが、まともなforall
の例を見つけることができませんでした。それは何をするためのものか?ブール関数を使うのはなぜですか?スカラーはすべての例ですか?
参照(Scaladocを除く)を参照してください。
私はGoogle検索を試みましたが、まともなforall
の例を見つけることができませんでした。それは何をするためのものか?ブール関数を使うのはなぜですか?スカラーはすべての例ですか?
参照(Scaladocを除く)を参照してください。
forall
メソッドは、ブール値を返す関数p
を受け取ります。 forall
のセマンティクスによれば、コレクション内のすべてのx
についてtrue
を返すとp(x)
がtrueです。
だから:
List(1,2,3).forall(x => x < 3)
手段:1、2、および3はそうでなければ3未満、false
であるtrue
場合。この場合、それはそうではありませんので、すべての要素が3未満のfalse
と評価されます:3 少なくとも一つがある場合true
を返す同様の方法exists
がある3
未満ではありませんコレクション内の要素x
はp(x)
が真となります。
だから:
List(1,2,3).exists(x => x < 3)
手段: 1、2、および3の少なくとも一方が3未満、false
そうでないtrue
場合。この場合、いくつかの要素が3未満であるので、true
と評価される。 1が3未満です。
Scala
スクリプトを使用してこの機能でどのように遊ぶことができるかの簡単な例です。
は
println(args.forall(p => (p.equals("a"))))
でmyScript.scala
ファイルを作成し、クロージャ内あなたがより多くのコマンドは、スコープ変数の外に割り当てるEG実行できることを覚えておくことが
scala myScript.scala a a a // true
scala myScript.scala a b c // false
なぜREPLを使用しないのですか? –
良いとそれを呼び出す
def main(args: Array[String]){
var country = ""
var environment = ""
val isValid = args.sliding(2, 2).forall{
case Array("--env", value : String) => {
environment = value
Array("test", "staging", "prod").contains(value.toLowerCase())
}
case Array("--country", value : String) => {
country = value
Array("BE", "NL", "FR").contains(value.toLowerCase())
}
case _ => false
}
if(!isValid){
println ("Wrong usage. Please insert params in the following format: --country {NL,BE,UK,FR} --env {test, staging, prod}")
return
}
else
println (s"Correct usage. env=$environment country=$country")
}
http://www.scala-lang.org/api/current/scala/collection/immutable/List.html: '述語がこのリストのすべての要素に対して保持されているかどうかをテストします。 ' – MikkoP
多分あなたは思ったので混乱しました'foreach'の機能性の代わりに(すべての要素を反復して) –
はい、私はforeachの並列バージョンを考えていました。 – Jus12