list-comprehension - 将数组分配给教堂类中的属性

标签 list-comprehension chapel

这是我需要在 Chapel 中重新创建的类似 Python 的模式。

class Gambler {
  var luckyNumbers: [1..0] int;
}

var nums = [13,17,23,71];

var KennyRogers = new Gambler();
KennyRogers.luckyNumbers = for n in nums do n;

writeln(KennyRogers);

产生运行时错误

Kenny.chpl:8: error: zippered iterations have non-equal lengths

我不知道Kenny事先会有多少个幸运数字,那时我无法实例化Kenny。也就是说,我必须稍后分配它们。另外,我需要知道什么时候持有它们,什么时候折叠它们。

最佳答案

这是 array.push_back 的一个很好的应用方法。要一次插入一个幸运数字,您可以执行以下操作:

for n in nums do
  KennyRogers.luckyNumbers.push_back(n);

您还可以在单​​个 push_back 操作中插入整个数组:

KennyRogers.luckyNumbers.push_back(nums);

还有 push_frontinsert 方法,以防您需要将元素放在数组的前面或任意位置。

我认为我无法帮助确定何时持有或何时弃牌。

关于list-comprehension - 将数组分配给教堂类中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46852110/

相关文章:

Python 一行获取枚举类列表的所有值的组合列表

haskell - 简单函数中的类型混淆

python - python 中具有列表理解的嵌套上下文管理器

environment-variables - 如何从 Chapel 程序中读取环境变量?

arrays - Chapel 中数组的分配

file - "channel"类型的字段给出错误 "Cannot default-initialize a variable with generic type"

python - 使用嵌套 for 循环的 if 和 break 创建 Python 列表理解

python - 如何计算列表中 `None` 的出现次数?

Fortran do 循环增量的教堂模拟?

chapel - 在 Chapel 中获取当前任务 ID?