読者です 読者をやめる 読者になる 読者になる

日本語が不自由な緑の箱の日記

主にD言語とロボコンを

D言語の動的配列について

メモです

int[] darray = [1,2,3];
int[3] sarray = [1,2,3];

pragma(msg,typeof(darray));    //当然int[]
pragma(msg,typeof(darray[]));  //int[]
pragma(msg,typeof(sarray));    //当然int[3]
pragma(msg,typeof(sarray[]));  //int[]

静的配列でも識別子に[]を付けると動的配列に変換することが出来ます。 また、スライス演算sarray[1..2]などでも動的配列が返ります。

ベクトル演算では静的配列でも動的配列でも同じようにarray1[] + array2[]と書きますが、動的配列の場合の[]は単なる構文なのに対し、静的配列の場合は前述の動的配列への変換も含まれているようです(多分)。