在 Chapel 中,我可以将等于给定值的数组元素的数量计算为
var a = [1,2,5,5,5];
writeln( a.count( 5 ) ); // this gives 3
但类似的方法似乎不适用于计算真实元素的数量:
writeln( count( a > 1 ) );
writeln( ( a > 1 ).count( true ) );
在这种情况下,我是否需要编写一个显式的 for 循环,或者是否有任何其他函数(或方法)用于此目的......?
更新
经过更多的实验,似乎如果我将结果保存a == 5
到一个新数组
var mask = ( a == 5 );
然后它按预期工作
writeln( mask.count( true ) ); // gives 3
那么,a == 5
可能代表与数组对象不同的东西,因此不.count()
直接提供?