在D中使用带数组的构造函数

Joh*_*n_C 7 arrays constructor d dynamic-arrays

在使用new分配数组时如何调用构造函数?

例如,在下面的代码中,如何为A的每个实例化调用构造函数,将b的所有10个元素初始化为5?

void main() {
    A[] a = new A[10];
}

class A {
    int b;
    this(int init) {
        b = init;
    }
}
Run Code Online (Sandbox Code Playgroud)

我猜这不可能,但我希望......

rat*_*eak 11

一个简单的循环应该做(并且它是最可读的)

foreach(ref el;a){
    el=new A(5);
}
Run Code Online (Sandbox Code Playgroud)

或者你可以使用数组初始化器:

A[] a=[new A(5),new A(5),new A(5),new A(5),new A(5),
       new A(5),new A(5),new A(5),new A(5),new A(5)];
Run Code Online (Sandbox Code Playgroud)