Chapel eltType 方法

Chapel eltType methods

我有一个 class,其中包含一个包含 eltType 数组的字段。这看起来像这样:

type eltType;
var size = 5;
var elementsDomain: domain(1) = {0..size-1};
var elements: [elementsDomain] eltType;

稍后,我有一个方法利用它(仍在 class 内部),如下所示:

proc add(eltType el){
    elements[0] = el;
}

我收到一个编译器错误,提示它在 add 方法签名处存在语法错误。我认为 eltTypes 在 java 中的工作方式类似于泛型类型。我到底哪里做错了 eltTypes,它们应该如何工作?

您需要按照以下格式声明el的类型:

proc add(el : eltType) {

Chapel 在确定类型方面做得很好(富有成效的递归函数除外),因此如果您省略类型并说:

proc add(el) {