【D言語】Uniform tuple syntaxについて【DIP32】

DIPに、Uniform tuple syntaxなる提案があります。

このDIPは、要は今まで


tuple(1, 3.14, "hi")

と書いてきたタプルを、


{1, 3.14, "hello"}

と書けるようにしよう、というものです。


さらに、タプルの展開やパターンマッチも提案されています。


// 代入時の展開
auto {x, y} = {1, "hi"}; // x = 1; y = "hi";
{x, y} = {2, "lo"};

// 関数引数の展開
void f({int x, int y}, int r){}
f({2, 3}, 4);

// パターンマッチ
switch(tup)
{
    case {1, 2}:
    case {$, 2}: // $はワイルドカードかつ入力を捨てる
    case {1, x}:
}

見た感じ、すごく便利そうな機能ですね。 個人的には、関数引数の展開がすごく便利そうなので、このDIPがacceptされたら使ってみたいです。

担当:美馬(ただ、色々と問題も出てきそう・・・)