我正在玩 D 数组,我偶然发现了这个:
当我编译这段代码
import std.stdio;
int main()
{
int[] a, b;
b ~= [2,3,4,5];
a.length = b.length;
a[] = b[] + 4;
writeln(typeid(a),"\n",typeid(b));
writeln(a,"\n",b);
int[] c, d;
for (int n=10; n<20; ++n) {
d ~= n;
}
c.length = d.length;
c = d[] + 2; //compile error
writeln(typeid(c),"\n",typeid(d));
writeln(c,"\n",d);
return 0;
}
编译时出现错误:
Error: Array operation d[] + 2 not implemented
前几行与其余行之间的唯一区别是填充 b 和 d 的方式。
如何在循环中填充数组时使用数组操作?
还有一个问题:
前几行是正确的方法吗?这条线a.length = b.length;
对我来说似乎有点奇怪。