我遇到了几个关于opDot方法的提及,它允许重载成员访问又称点运算符,但它的官方文档丢失了.它肯定没有退出,因为std.typecons.Unique使用它.
有谁知道,如何使用opDot,为什么没有关于它的文档?
Jon*_*vis 12
opDot
已被安排弃用.这就是没有记录的原因.不要使用它.请alias this
改用.您可以使用它将特定类型或函数别名化为类型,以便它可以像该类型一样.例如
struct S
{
int value;
alias value this;
}
Run Code Online (Sandbox Code Playgroud)
将使它成为一个类型的变量S
将隐式转换为int
使用S
的value
字段.您也可以使用以下方式对函数进行别名:
struct S
{
int get()
{
return 7;
}
alias get this;
}
Run Code Online (Sandbox Code Playgroud)
虽然这可能更具限制性,因为dmd目前不支持alias this
为一个类型设置多个es(最终应该).在这种情况下,您可以隐式地转换S
为a int
,但不能反向转换.Regarldess alias this
旨在实现隐式转换.
如果alias this
不是你想要的,另一种可能性是opDispatch
.它允许您将点右侧的内容转换为其他内容(例如将所有调用转换foo
为bar
).但是,在这两者之间,你应该可以做任何你想做的事情opDot
(还有更多).