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
,了.防止分裂.