Arrays D中的向量表示法
我正在玩D阵列,我偶然发现: 当我编译这段代码时Arrays D中的向量表示法,arrays,d,Arrays,D,我正在玩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;
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;
}
前几行和其他行之间的唯一区别是b和d的填充方式
如何在循环中填充数组时使用数组操作?
还有一个问题:
前几行是正确的方法吗?行
a.length=b.length代码>对我来说似乎有点奇怪。第一个问题:你刚才忘了左边的[]
<代码>c[]=d[]+2代码>工作
第二个问题:是的;向量操作需要大小相等的数组,设置.length
是调整数组大小的一种方法。第一个问题:您刚刚忘记了左侧的[]
<代码>c[]=d[]+2代码>工作
第二个问题:是的;向量操作需要大小相等的数组,设置.length
是调整数组大小的一种方法
前几行与其他行之间的唯一区别是b和d的填充方式
不,不是。仔细看看
a[] = b[] + 4;
c = d[] + 2; //compile error
关于这一点:
int[] a, b;
b ~= [2,3,4,5];
a.length = b.length;
a[] = b[] + 4;
您也可以这样做:
int[] a = new int[4];
int[] b = [2, 3, 4, 5];
a[] = b[] + 4;
前几行与其他行之间的唯一区别是b和d的填充方式
不,不是。仔细看看
a[] = b[] + 4;
c = d[] + 2; //compile error
关于这一点:
int[] a, b;
b ~= [2,3,4,5];
a.length = b.length;
a[] = b[] + 4;
您也可以这样做:
int[] a = new int[4];
int[] b = [2, 3, 4, 5];
a[] = b[] + 4;