2

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

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

稍后,我有一个使用这个的方法(仍在类内部),如下所示:

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

我收到一个编译器错误,说它在 add 方法签名处有语法错误。我认为 eltTypes 就像 java 中的泛型类型一样工作。我到底是怎么做错了 eltTypes,它们应该如何工作?

4

1 回答 1

3

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

proc add(el : eltType) {

Chapel 在识别类型方面做得很好(除了富有成效的递归函数),所以如果你把类型排除在外并说:

proc add(el) {
于 2017-04-16T00:40:27.697 回答