v0.167
D言語もついに配列リテラルがサポートされたー
記法は[exp1,exp2,exp3,...expN]みたいに書く。
配列の型は最初の要素の型の配列になる。
expは非定数式でも良いので結構便利です。
class A{} class B{} class C{} void main(char[][]args){ foreach(x;[new Object,new A,new B,new C]) x.print(); }
が、微妙に鬱陶しい点があります。
静的配列の静的初期化と文法が被っていることです。
おかげで
void main(){ int []x = [2,3,4]; }
みたいにローカル変数で宣言と同時に代入できなかったりします。
ま、([2,3,4])と()で括って配列リテラルと明示すれば大丈夫だから、
そこまで深刻ではありませんけどね。
うーん、静的配列の静的初期化は廃止して、
配列リテラル一本にしてくれれば
問題は解決すると思うんだけどどうだろう?