Best Practice: if (foo == false) oder if (! foo) [duplizieren]

8

Heute haben meine Kollegin und ich einen Streit erhoben. Welches ist eine bessere Möglichkeit, die booleschen Variablen in Java-Code zusammen mit if-Anweisungen zu verwenden.

%Vor%

Ich unterstütze [1], da ich denke, dass es besser lesbar ist. Was denkst du?.

    
pavanlimo 30.08.2010, 05:20
quelle

7 Antworten

12

Nummer 2, zusammen mit "foo" mit einem beschreibenden Namen, so dass der Code gut liest:

if (!hasPurple) ...

    
Jeffrey 30.08.2010, 05:23
quelle
6

Ich finde # 2 besser lesbar. Ich denke jeder Java Entwickler (ich bin ein C # Entwickler) würde was wissen! meint. Ich

Obwohl es wahrscheinlich nicht der Punkt hier ist, ziehe ich es vor, meinen "wahren" Block als Aussage zu verwenden. Wenn die Bedingung im Allgemeinen falsch ist, dann benenne ich meine Variable, um

darzustellen %Vor%     
Rob Gray 30.08.2010 05:24
quelle
4

Ich finde es eine gute Idee, Dinge wie

zu vermeiden %Vor%

weil Sie gelegentlich

schreiben könnten %Vor%

als Tippfehler. Oftmals ist es ein leichter Fehler, es zu erkennen, aber es scheint einfach gut zu sein, um diesen schnellen Fehler zu machen.

    
JBirch 30.08.2010 05:31
quelle
0

Ich gehe für 2, weil als Programmierer sogar 2 lesbar ist.

Stellen Sie sich vor, Sie haben Hunderte solcher Validierungschecks, die Sie immer mit false überprüfen.

Nein

    
ckv 30.08.2010 05:22
quelle
0

Wenn Sie der einzige sind, der Ihren Code verwaltet, dann können Sie den Stil verwenden, den Sie mögen.

Nachdem ich gesagt habe, dass! foo von den meisten Entwicklern, die ich kenne, bevorzugt wird.

    
drekka 30.08.2010 05:23
quelle
0

Es ist eine Frage der Meinung. Ich bevorzuge Nummer 2, weil es weniger Code zum Schreiben und ich denke, es ist genauso lesbar.

    
Conceited Code 30.08.2010 05:23
quelle
0

Wenn Sie eine boolesche Variable als Bedingung in einer Anweisung verwenden, vergleichen Sie sie nicht mit true.

Kein Fehler, aber schlechter Stil. Da es bereits ein boolescher Wert ist, benutze ihn einfach.

  

Gründe warum "! foo" besser ist   als "foo == falsch". Referenz von

     
  • Prägnanz: Angenommen, Sie befinden sich in einem Kontext, in dem ein boolescher Wert ist   benötigt, und "x" ist ein Boolescher, ist es   weniger Zeichen, um "x" als "x" zu schreiben   == true ", oder"! x "als" x == false ".

  •   
  • Convention: erfahrene Programmierer in Java (oder C, C ++, C # und die meisten anderen
      Sprachen) erwarten, "x" eher zu sehen   als "x == wahr" und "! x" eher   als "x == false".

  •   
  • Robustheit: In Java erfordern die bedingten und Schleifenanweisungen alle ein
      Boolescher Wert im Ausdruck   Bedingung. Wenn "y" kein boolescher Wert ist,
      dann ein Tippfehler der Form "if (y = foo)   {"gibt einen Kompilierungsfehler in
      Java. Aber wenn "y" ein boolescher Wert ist, dann
      "if (y = foo) {" gibt kein
      Kompilierungsfehler Daher durch Vermeiden   "==" für booleans vermeiden Sie das Setzen von
      sich für eine ganze Reihe von Bugs   aufgrund von Tippfehlern.

  •   
    
YoK 30.08.2010 05:42
quelle

Tags und Links