gpt4 book ai didi

d - 是否有惯用的 D 方法来生成包含从 1 到 n 的整数的数组?

转载 作者:行者123 更新时间:2023-12-04 11:59:24 24 4
gpt4 key购买 nike

通常在 D 我想做一些类似的事情:

uint n;
foreach(uint i; parallel(1..n)){
somefunc(i);
}

也就是说,我想对一个函数 (somefunc) 进行 n 次并行调用,使用整数 1 到 n 作为参数。

但是,dmd 似乎不喜欢这里的 1..n,所以我最终做了一些愚蠢的事情,例如:
uint n;
int[] nums = new int[n];
foreach(ulong index, int value; parallel(nums)){
sumfunc(index);
}

有没有一种惯用的方式在 D 中写这个?不涉及创建不必要的额外变量的东西?

最佳答案

看看 std.range.iota .它比数组更好,因为它不进行分配。

void main()
{
import std.parallelism, std.range;
foreach(i; parallel(iota(1, 100))){
somefunc(i);
}
}

void somefunc(uint i)
{
import std.stdio;
writeln(i);
}

关于d - 是否有惯用的 D 方法来生成包含从 1 到 n 的整数的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25211858/

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