これら2つの方法の主な違いを知りたいだけです。Groovy API が predicate と言うとき、それはどういう意味ですか?
質問する
516 次
2 に答える
6
簡単な説明:
述語は、ブール値を返す関数/式です
map.every は、述語がすべての要素に対して true と評価された場合にのみ true を返します。
- map.any は、少なくとも 1 つの要素について述語が true と評価された場合に true を返します。
例 (疑似コード):
a = [1,2,3,4,5]
a.every { |x| x < 3 } => false, since 3,4 and 5 are not smaller than 3
a.any { |x| x < 3 } => true, since 1 and 2 are smaller than 3
于 2012-06-12T10:48:11.943 に答える
5
ドキュメントを読んだら;
マップのエントリを繰り返し処理し、述語が少なくとも 1 つのエントリに対して有効かどうかを確認します
一方、Map.everyは言う
マップのエントリを繰り返し処理し、述語がすべてのエントリに対して有効かどうかを確認します。
述語とは、クロージャーを介してエントリを実行し、Groovy Truthiness の結果をチェックすることを意味します
例 (Frank の疑似コードを Map を使用して実際の groovy コードに拡張):
a = [a:1,b:2,c:3,d:4]
assert a.every { key, value -> value < 3 } == false // since 3 and 4 are not smaller than 3
assert a.any { key, value -> value < 3 } == true // since 1 and 2 are smaller than 3
于 2012-06-12T10:48:33.037 に答える