Ich denke, dass die Entscheidungsträger komplexe Werte, Matrixalgebra, Mengenlehre und andere Fälle, in denen eine Überladung die Verwendung der Standardnotation ermöglichen würde, ohne alles in die Sprache zu integrieren, einfach vergessen haben. Wie auch immer, nur mathematisch orientierte Software profitiert wirklich von solchen Funktionen. Eine allgemeine Kundenanwendung braucht sie fast nie.
Die Argumente über die unnötige Verschleierung sind natürlich gültig, wenn ein Programmierer einen programmspezifischen Operator definiert, der stattdessen die Funktion sein könnte. Der Name der Funktion, wenn er deutlich sichtbar ist, gibt den Hinweis, dass sie es ist. Operator ist eine Funktion ohne den lesbaren Namen.
Java ist im Allgemeinen nach der Philosophie konzipiert, dass eine gewisse zusätzliche Ausführlichkeit nicht schlecht ist, da sie den Code lesbarer macht. Konstrukte, die das Gleiche bewirken, nur dass weniger Code eingegeben werden muss, wurden in der Vergangenheit als "Syntaxzucker" bezeichnet. Dies unterscheidet sich stark von der Python-Philosophie, wo kürzerer Code fast immer als besser angesehen wird, auch wenn er weniger Kontext für den zweiten Leser bietet.
6 Stimmen
Kann auch lesen Warum Java das Überladen von Operatoren nicht unterstützt
1 Stimmen
@zzzz, es fällt mir schwer, diesen Artikel zu lesen. Wurde er automatisch übersetzt, oder ist Englisch die zweite Sprache des Autors? Ich finde die Diskussion hier viel sauberer.
48 Stimmen
An die Leute, die dies als nicht konstruktiv abtun: Diese Frage hat einen der konstruktivsten Dialoge hervorgebracht, die ich bei SO gesehen habe. Vielleicht ist es ein besserer Kandidat für programmers.stackexchange.com aber es gibt Zeiten, in denen ich denke, dass SO übermäßig abweisend gegenüber breiteren Themen ist.
1 Stimmen
@NoNaMe es ist ganz einfach, einfach geistig einfügen a y die - Fehlende Artikel sind ein deutliches Zeichen dafür, dass die Person entweder kein englischer Muttersprachler oder ein Programmierer ist (oder wie dieser Typ, beides :) Der Grund, warum Programmierer Artikel weglassen können, ist, dass dadurch Kommentare kürzer werden und leichter in den zur Verfügung gestellten Platz passen von da an gewöhnen sie sich einfach daran. Mein Problem ist das Layout, irgendwie stoße ich bei der Google-Suche immer auf diese Seite. Zum Glück gibt es eine tolle Chrome-Erweiterung namens Eindeutig die schwer zu lesende Seiten wunderbar neu formatiert.
1 Stimmen
Ich sehe keinen Grund, warum und wie OP die erste Antwort akzeptiert hat? Antwort geschrieben von @ stackoverflow.com/benutzer/14089/paercebal ist ausgezeichnet. Sie sollte akzeptiert werden.
0 Stimmen
Ich wünschte, die
==
Operator würde für Zeichenketten überladen werden. Es erwischt mich jedes Mal, wenn ich von GO, PHP, RUBY, Python, .... zurück wechsle.