gpt4 book ai didi

chapel - 在 Chapel 中的未知类型数组上声明一个函数?

转载 作者:行者123 更新时间:2023-12-05 00:13:02 26 4
gpt4 key购买 nike

我想在数组上写一个函数,但我想要一个泛型类型。为了争论,让我们把它作为一个总和。

proc mySum(x:[] int) {
return + reduce x;
}
proc mySum(x:[] real) {
return + reduce x;
}

泛型类型的符号是什么?我认为它类似于 proc mySum(x: [] <T>) {}但这不起作用。

最佳答案

最简单的方法是在正式的类型声明中关闭元素类型:

proc mySum(x:[]) {
return + reduce x;
}

writeln(mySum([1, 2, 3]));
writeln(mySum([1.0, 2.0, 3.0]));

这会给你:
6
6.0

如果你想有一种符号引用类型的方法,你也可以使用下面的语法来查询它并将它绑定(bind)到一个标识符( t 这里):
proc mySum(x:[] ?t) {
writeln("I'm computing a reduction over an array of ", t:string);
return + reduce x;
}

writeln(mySum([1, 2, 3]));
writeln(mySum([1.0, 2.0, 3.0]));

这会给你:
I'm computing a reduction over an array of int(64)
6
I'm computing a reduction over an array of real(64)
6.0

(当然,您也可以执行声明类型为 t 的变量等操作)

关于chapel - 在 Chapel 中的未知类型数组上声明一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com