Gibt es eine Möglichkeit, arithmetische Ooeratoren zwischen Strukturen zu definieren? Ich benutze ein Dezimal-Paket, um mit festen Dezimalstellen zu arbeiten und floats Rundung erre ta zu vermeiden. Ir definiert Operationen cAlling Funktionen wie mul, add, sub, etc. ID gerne diese Struktur wie ich mit Floats: 6/2, nicht decimal.newfromfloat (6). Div (newfromfloat (2)) Ich hatte gehofft um etwas Interface zu finden, das mich dazu bringt, solche Operationen auszuführen, oder vielleicht eine Art Getter Setter, um mit den zugrunde liegenden Values zu arbeiten ... Irgendwelche Ideen?Golang: arithmetische Operatoren auf Strukturen
Antwort
Nein, Sie können Operatoren in Go nicht überlasten. Es gibt einen FAQ-Eintrag über sie:
Warum unterstützen geht nicht von Methoden und Operatoren Überlastung?
Der Methodenversand ist vereinfacht, wenn auch die Typübereinstimmung nicht erforderlich ist. Erfahrungen mit anderen Sprachen haben uns gezeigt, dass es manchmal nützlich ist, eine Vielzahl von Methoden mit dem gleichen Namen, aber unterschiedlichen Unterschriften zu verwenden, die aber in der Praxis auch verwirrend und fragil sein können. Die Übereinstimmung nur nach Namen und Konsistenz in den Typen war eine wichtige Vereinfachung in Go's Typsystem.
In Bezug auf die Überlastung des Bedieners scheint es eher eine Annehmlichkeit als eine absolute Anforderung zu sein. Auch hier sind die Dinge einfacher.
https://golang.org/doc/faq#overloading
Wenn Sie eine funktionierende Lösung benötigen, schauen, wie Paket math/big
beschäftigt sich mit Arithmetik sans Betreiber Überlastung.
Das ist eine Schande ... Ich liebte den Dezimal-Typ in .NET – Marcos
- 1. Overloading Arithmetische Operatoren
- 2. Arithmetische Operatoren in PhP Echo
- 3. Operator Vorrang - Arithmetische und bedingte Operatoren
- 4. Unterschied zwischen einigen Operatoren "|", "^", "&", "& ^". Golang
- 5. Wie arithmetische Operatoren in einer Formel in R
- 6. Wie Methoden von Strukturen in Golang dump?
- 7. arithmetische Constraints mit logischen Operatoren in Sympy Solving
- 8. Grammatik für arithmetische Ausdrücke
- 9. Benutzerdefinierte Prolog arithmetische Funktion
- 10. Arithmetische Operation auf primitiven Klassenvariablen
- 11. Golang, Ändern von Strukturen von benutzerdefinierten Clients MaxIdleConnsPerHost
- 12. Golang - Code-Organisation mit Strukturen, Variablen und Schnittstellen
- 13. Initialisierung einer Struktur, die eine Scheibe von Strukturen in Golang
- 14. Golang: Typ Aliasing Strukturen, die eine Schnittstelle erfüllen Anforderung
- 15. Einfügen von verschachtelten Strukturen in MongoDb mit Golang
- 16. C++ Zeiger auf Operatoren
- 17. Gibt es eine Möglichkeit, arithmetische und logische Operatoren als Methodenparameter in VBA zu übergeben?
- 18. Können Sie arithmetische Operatoren verwenden, um zwischen 0 und 1 zu wechseln?
- 19. Wie man eine gegebene Zahl mit 2 multipliziert, ohne arithmetische Operatoren in c zu verwenden?
- 20. Wie finden Sie ungerade/gerade Zahl ohne arithmetische Operatoren in C?
- 21. Was ist der "beste" Weg, arithmetische Operatoren in modernem C++ zu überladen?
- 22. Wie setze ich geschweifte Klammern/Klammern/eckige Klammern/arithmetische Operatoren Syntaxfarbe in VIM?
- 23. jpa Anfrage für arithmetische Operation auf Spalten
- 24. arithmetische Operation auf Regex-Gruppe Javascript
- 25. Arithmetische Operationen auf BigInteger in Java
- 26. Arithmetische/logische Operation basiert auf Spaltenwert
- 27. arithmetische Ausnahme in C#
- 28. Zugriff auf ein Array von Strukturen in anderen Strukturen?
- 29. Datenkompression: Arithmetische Codierung unklar
- 30. arithmetische Operationen innerhalb Vorlagen
Nein, es gibt keine und es wird keine geben. – Volker