Ich habe mehrere Erwähnungen über die opDot-Methode getroffen, die es erlaubt, den Memberzugriff als Punktoperator zu überladen, aber die offizielle Dokumentation dafür fehlt. Es ist sicherlich nicht ausgefallen, wie es std.typecons.Unique nutzt.
Weiß jemand, wie OpDot verwendet werden kann und warum es keine Dokumentation darüber gibt?
opDot
wurde als veraltet eingestuft . Deshalb ist es nicht dokumentiert. Benutze es nicht. Verwenden Sie stattdessen alias this
. Sie können damit einen bestimmten Typ oder eine bestimmte Funktion für einen Typ verwenden, so dass er wie dieser Typ funktioniert. z.B.
macht es so, dass eine Variable vom Typ S
implizit in int
umgewandelt wird, indem S
's value
verwendet wird. Sie können Funktionen auch wie folgt aliasieren:
Dies kann jedoch einschränkender sein, da dmd derzeit nicht unterstützt mehrere alias this
es für einen Typ zu haben (sollte es aber letztendlich). In diesem Fall können Sie S
implizit in ein int
umwandeln, aber nicht umgekehrt. Regulardess, alias this
ist für die Implementierung impliziter Konvertierungen vorgesehen.
Wenn alias this
nicht ganz Ihren Wünschen entspricht, ist opDispatch
eine weitere Möglichkeit. Es ermöglicht Ihnen, das, was sich auf der rechten Seite des Punktes befindet, in andere Dinge umzuwandeln (z. B. alle Aufrufe in foo
in bar
umzuwandeln). Aber zwischen diesen beiden solltest du in der Lage sein, mit opDot
(und noch viel mehr) so ziemlich alles zu tun, was du vorhattest.