gpt4 book ai didi

d - 不能在 char 数组上使用 parallel?

转载 作者:行者123 更新时间:2023-12-01 23:46:25 26 4
gpt4 key购买 nike

我在 D 的在线游览和本地的 ldc 上都尝试过这个。这个错误让我很困惑。与 int 相比,char 有什么特别之处,以至于它不能成为并行引用?

import std.stdio : writeln;
import std.parallelism;

void main()
{
auto arr = [1,2,3,4,5,6,7,8];
foreach(ref i; parallel(arr)) {
//writeln(typeid(i));
i = i*i;
}

writeln(arr);

auto result = [ 'w','e','l','c','o','m','e','t','o','d'];
//foreach( ref c; parallel(result)) --> Error: foreach: cannot make c ref
foreach( ref c; result)
{
//writeln(typeid(c));
c = 'a';
}
writeln(result);

writeln(typeid(arr));
writeln(typeid(result));
}

最佳答案

char 有点像部分类型 - 它代表一段 unicode 字符,而不是整个字符。考虑汉字维 - 它在内存中的表示形式是 E7 BB B4,或三个 char 的数组。因此,D 不允许您像操作其他类型一样操作 char

D 没有单独的 ASCII 文本类型,所以如果你想将字符串视为 ASCII,你应该使用 ubyte[] 而不是 char[] .

关于d - 不能在 char 数组上使用 parallel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64116926/

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