是否有任何D的本机函数(如push()
等)将值放入动态数组中,或者我应该将自己(有点乏味)函数写入每个类,如:
void push(myarr x)
{
myarr[myarr.length++] = x
}
答案 0 :(得分:4)
只需使用concat运算符~
:
void push(T)(ref T[] myarr, T x)
{
myarr~=x
}
答案 1 :(得分:2)
是的。 D具有数组连接运算符~
和~=
。
示例:
int[] arr = [ 3, 2 ];
arr ~= 0;
std.stdio.writeln(arr);
// Prints: [3, 2, 0]
更多相关信息:D Language Reference, Array Concatenation。
如果您希望自己的类型使用这些运算符,则必须overload op assignment operators。