35用d编程别名本

alias this允许自动转换类型,而opCast是显式转换类型.自动转换成变量的类型或函数返回类型.
语法alias 成员变量/函数 this ;

import std.stdio;

struct Fraction {
    long numerator;
    long denominator;

    double value() const @property {
        return double(numerator) / denominator;
    }

    alias value this;

    // ...
}

double calculate(double lhs, double rhs) {
    return 2 * lhs + rhs;
}

void main() {
    auto fraction = Fraction(1, 4);    // meaning 1/4
    writeln(calculate(fraction, 0.75));
    //有double的地方,就可使用`分数`,因为自动转换了
}

已经不再支持多个alias 别名 this,了.防止分裂.

发布了440 篇原创文章 · 获赞 29 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/fqbqrr/article/details/104588605