Ich habe gelesen, dass Dart Funktion Überladung nicht unterstützt. Unterstützt es das Überladen von Operatoren. Wenn ja, wäre nett und zeige mir wie in einem einfachen Beispiel wie es gemacht wird. Und was sind einige Vorteile usw. Ich bin neu in der Programmierung. Danke.Unterstützt Dart Operator überladen
Antwort
Ja Dart unterstützt die Überlastung des Operators mit dem Operator , gefolgt von dem Operator, den Sie überladen möchten. Das folgende Beispiel überlädt den == Operator für die MyClass Objekt:
class MyClass {
operator ==(MyClass other) {
// compare this to other
}
}
fast alle Darts integrierten Operatoren können mit einigen bemerkenswerten Ausnahmen ist der Zuweisungsoperator =
und Referenz Äquivalenz überlastet werden Operator
===
(existiert nicht mehr).
Was den Vorteil des Betreibers Überlastung es Ihnen Betreiber wiederverwenden kann, die eine bekannte semantische Bedeutung wie == oder + für Operationen auf Objekte. Wenn Sie zum Beispiel eine Matrix-Klasse, die die + Betreiber überlastet, dann können Sie zwei Matrizen hinzufügen mit der Syntax m1 + m2 anstelle der umständlichen m1.plus (m2)
könnte mir sagen, ob "andere" etwas Besonderes ist oder könnte es etwas anderes genannt werden. Wie == (MyClass ggg) –
@MuhammadUmer andere könnte nichts benannt werden, es ist nur der Parametername des Klassenobjekts, das Sie vergleichen, dh das == andere oder das + andere –
Muss das Argument der gleiche Typ sein, oder Kann man Operatoren wie Scala's List cons operator :: erzeugen, wobei der Typ auf der linken Seite der Elementtyp ist, um den neuen Kopf zu machen, und der Typ auf der rechten Seite ist der Listentyp? – pohl
zu erweitern Lars' Antwort, Sie können Operatoren auch mit der Inline-Funktionssyntax überladen.
class MyClass {
operator ==(MyClass o) => id == o.id;
}
- 1. Dart, Überladen [] Operator?
- 2. Operator überladen []
- 3. ostream operator überladen auf einem überladen Postfix Inkrement/Dekrement-Operator
- 4. Unterstützt Dart funktionale Programmierung?
- 5. Operator überladen auf Klassenvorlagen
- 6. ruby operator überladen frage
- 7. Operator in C++ überladen
- 8. C++ statischer Operator überladen
- 9. Funktionsvorlage mit Operator überladen
- 10. Operator überladen >>
- 11. C++: Überladen Operator =
- 12. Operator == überladen vergleicht nicht
- 13. binärer Operator überladen; implizite Typkonvertierung
- 14. Monitor mit Operator überladen C++
- 15. Operator überladen für C++ - Karten
- 16. Binärer Operator überladen und Polymorphismus
- 17. Operator überladen als Freund Funktionsfehler
- 18. Operator überladen und String ändern
- 19. Unterstützt Iterator + Operator?
- 20. Unterstützt Go Operator-Typvariablen?
- 21. Überladen von Operator <und Operator> in derselben Klasse
- 22. << Operator vs. überladen + Operator für Zeichenfolgen in C++
- 23. Unterstützt der Dart Client SSL/TLS-Verbindungen?
- 24. Überladen von Operator in C++ und Dereferenzierung
- 25. C++ Operator überladen für komplexe Zahlenoperationen
- 26. Python: Operator Überladen eines bestimmten Typs
- 27. Wo wird der Operator im Speicher überladen?
- 28. C# Operator Überladen, String neu schreiben?
- 29. Operator [] Überladen in mehrdimensionalen Arrays C++
- 30. Binärer Operator überladen auf einer Vorlagenklasse
wo haben Sie gelesen, dass * Dart Funktion Überladung * nicht unterstützt? –