私は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;
は私には少し奇妙に思えます。