d2:opDot的语义是什么?
我已经多次提到opDot方法,它允许重载成员访问,也就是点操作符,但是缺少关于它的官方文档。它肯定不会退出,因为std.typecons.Unique利用了它d2:opDot的语义是什么?,d,D,我已经多次提到opDot方法,它允许重载成员访问,也就是点操作符,但是缺少关于它的官方文档。它肯定不会退出,因为std.typecons.Unique利用了它 有人知道opDot是如何使用的吗?为什么没有关于它的文档。这就是为什么它没有被记录下来。不要用它。改用。您可以使用它将特定类型或函数别名为某个类型,以便它可以像该类型一样工作。e、 g struct S { int value; alias value this; } 将使S类型的变量使用S的值字段隐式转换为int。也可
有人知道opDot是如何使用的吗?为什么没有关于它的文档。这就是为什么它没有被记录下来。不要用它。改用。您可以使用它将特定类型或函数别名为某个类型,以便它可以像该类型一样工作。e、 g
struct S
{
int value;
alias value this;
}
将使S
类型的变量使用S
的值
字段隐式转换为int
。也可以通过这种方式别名函数:
struct S
{
int get()
{
return 7;
}
alias get this;
}
尽管这可能更具局限性,因为dmd目前不支持为一个类型使用多个别名this
es(但最终应该是这样)。在这种情况下,您可以将S
隐式转换为int
,但不能反向转换。Regardess,别名此
用于实现隐式转换
如果别名此
不是您想要的,则另一种可能性是。它允许您将点右侧的内容转换为其他内容(例如,将所有对foo
的调用转换为bar
)。但是,在这两者之间,你应该可以用opt做你想做的任何事情(除此之外还有很多)。试试这个: