Frage

klagt Check über folgende Möglichkeiten:

return (null == a ? a : new A());

und sagt, die Pars unnötig sind.

Während die Aussage sicherlich gut funktioniert, ohne sie, so scheint es weit besser lesbar mit ihnen vorhanden --- sonst wie ich es lese ich neigen dazu, zu sehen:

return null

und dann pausieren müssen die verbleibenden

betrachten
== a ? a : new A(); 

Teil, weil mein Gehirn hat unten einen Weg bereits gegangen.

Außerdem neige ich dazu, das Gleiche zu tun , wenn Ich sehe einen ternären Operator, es sei denn, es in Pars gruppiert ist.

Also: sollten Pars um die ternären sein der de-facto-Standard? Gibt es überhaupt einen Grund setzen sie nicht da?

War es hilfreich?

Lösung

Nun, das ist richtig check, die Klammern sind nutzlos für die Ausführung. Aber nutzlos für die Ausführung bedeutet nicht nutzlos für die gute Lektüre Ihres Codes. Sie sollten sie verlassen, wenn es mehr Sinn zu lesen macht.

Ich denke, dieser Code nicht mehr Klammern müssen:

int number = (myBoolean)? 1 : 2;

aber in Ihrem Fall das return Schlüsselwort und die Tatsache, Ihre boolean ist ein Ausdruck, wie Sie die Anweisung lesen ändern können.

Andere Tipps

Wenn Sie eine return-Anweisung zu lesen, ich weiß, dass alles zwischen ‚Rückkehr‘ und ‚;‘ als return null ist, was zurückgegeben werden soll, so ist es keine Art, wie ich Ihren Code Probe von einigen Symbolen gefolgt lesen können, wie Sie behaupten, dass Sie es lesen.

Vielleicht auf Parsing-Techniken zu lesen up könnte Ihnen helfen, es zu sehen, wie ich. Das heißt, ich habe nicht wirklich auf Parsing Techniken nachlesen, obwohl ich ein paar Parser zusammen über die Jahre gepflasterten haben.

Ich entferne immer unnötige Klammern. Sie helfen nicht in Code Verständnis, wie ich ziemlich gut Java Operatorpräzedenz kennen. Die ungeraden Mal, dass ich nicht sicher bin, ich Klammern hinzu und warten, ob IDEA sagt mir, sie sind überflüssig. Dann sie mich entfernen, und versuche einzuprägen die Vorrangregel ich gerade entdeckt habe.

In dem Codebases ich geerbt, neige ich dazu, die größte Anzahl von redundanten Klammern in Bereichen des Codes zu finden, die aus anderen Gründen arm sind, so dass ich die beide in Verbindung bringen.

Nein, es sollte nicht der De-facto-Standard sein. Ich ziehe es ohne parens.

ich glaube, der einzige Grund, sie zu bringen, gibt es auf Kraft Auswerteauftrag oder eine verwirrende Linie zu klären.

Beide Optionen korrekt sind, verwenden, was Ihr Team Verwendungen oder was Sie mögen, wenn Sie alleine arbeiten.

IIRC standardmäßig verwendet check Suns (r.i.p) Stil-Richtlinien, wenn Sie also auf Standard-Stil anpassen wollen, sie hören und die Pars entfernen.

In der Regel nicht .

Klammern werden nicht erforderlich um ternäres (auch als bedingtes bekannt) Betreiber oder dessen Abschnitt, weil ihre Priorität ist so sehr niedrig in der Reihenfolge der Operationen (knapp unter logischen Operatoren und über Zuweisungen). Siehe den Link unten für die vollständige Tabelle.

Es könnte argumentiert werden, daher, dass solche unnötigen parens visuell Unordnung der Code, und sie zeigen eine Verständnislosigkeit auf Seiten des Programmierers.

Ausnahmen, die Verwendung von Pars in oder um Ternäre benötigen könnte, wäre:

  • Wenn Ihre ternäres ist komplex genug, um Verdienst mehr Zeilen; Sie könnten dann Ihre Aussage in Pars, um umgeben automatisches Semikolon Einsetzen zu verhindern.

  • Wenn Ihr ternären innerhalb eines anderen ternären verschachtelt ist.

Siehe auch auf MDN:

Da die Grundlage für Ihre Frage hat mit der Tat zu tun Code zu lesen, ich werde die Frage aus dieser Perspektive nähern.

Eines der Grundprinzipien der sogenannten „Speed-Lese“ Trainingsprogramme ist, dass sie versuchen, den Leser zu bekommen, gestalt die Textzeile zu entwickeln, anstatt lesen sequentiell word- -Wort. Sie könnten versuchen, eine Seite aus ihrem Buch und Schritt zurück aus dem Code zu nehmen - wörtlich, wenn necessary-- ein Gefühl für die volle Linie eher zu bekommen, als der Aktes der Behandlung zu lesen, als ob es der Akt der war durch Token Token Parsen.

Alternativ können Sie einen Editor verwenden, die Sie Stile konfigurieren kann: Sie könnten den ternären Operator eine andere Farbe machen, so dass es bei Ihnen herausspringt. Notepad ++, zum Beispiel, hat eine Reihe von integrierten Design, die dies tun, wie viele anderen Editoren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top