我注意到了一段代码中的内容:
var D: domain(2) dmapped Block(boundingBox=Space) = Space;
var A: [D] int;
[a in A] a = a.locale.id;
[a in A]
是否等同于forall a in A a = a.locale.id
?
答案 0 :(得分:3)
是的,确切地说。在Chapel中,[a in A] expr
相当于forall a in A do expr
。
关于此问题的标题,请注意,这与 A
是否已分发无关。例如,您也可以写[i in 1..n]
而不是forall i in 1..n do
。
Chapel中的数组类型,如[D] real
,同样可以理解为
"对于
D
中的所有索引,请分配real
类型的元素。"