d立即调用的串字面

可用立即调用的串字面来解决:

enum string values = () {
    string result = "value.x";
    if (L != 1) { result ~= ",value.y"; }
    if (L != 2) { result ~= ",value.z"; }
    if (L != 3) { result ~= ",value.w"; }
    return result;
}(); // 调用刚定义函数.

enum string kind = () {
    if (is(S == uint)) { return "ui"; }
    else if(is(S==float)){return"f";}
    else{assert(is(S==double));return"d";}
}();

因为枚常量不变的.它们的值必须在单个表达式中计算,且一旦分配,就永远不变.
(){表达式;}(),神奇的表达式语法.

posted @ 2022-01-18 22:34  zjh6  阅读(12)  评论(0)    收藏  举报  来源