Warum hat Java keine zusammengesetzten Zuweisungsversionen der Bedingungs- und Bedingungsoperatoren? (& amp; & amp; =, || =)

Also für binäre Operatoren auf Boolean, Java hat &|^&& und ||.

Lassen Sie uns zusammenfassen, was Sie tun, hier kurz:

Für & das Ergebnis Wert ist true wenn beide Operanden Werte sind true; andernfalls ist das Ergebnis false.

Für | das Ergebnis Wert ist false wenn beide Operanden Werte sind false; andernfalls ist das Ergebnis true.

Für ^ das Ergebnis Wert ist true wenn die Operanden-Werte unterschiedlich sind; andernfalls ist das Ergebnis false.

Den && Betreiber ist wie & aber wertet seinen rechten Operanden nur dann, wenn der Wert seines linken Operanden ist true.

Den || Betreiber ist wie |aber wertet seinen rechten Operanden nur dann, wenn der Wert seines linken Operanden ist false.

Nun, unter all 5, 3 von denen haben zusammengesetzte Zuweisung Versionen, nämlich |=&= und ^=. Also meine Frage ist offensichtlich: warum nicht Java stellen &&= und ||=? Ich finde, dass ich brauche, mehr als ich brauche &= und |=.

Und ich glaube nicht, dass "weil es zu lange" ist eine gute Antwort, denn Java hat >>>=. Es muss einen besseren Grund für diese Unterlassung.


Vom 15.26 Zuweisungsoperatoren:

Gibt es 12 Zuweisungsoperatoren; [...] = *= /= %= += -= <<= >>= >>>= &= ^= |=


Einen Kommentar gemacht wurde, dass, wenn &&= und ||= umgesetzt wurden, dann wäre es das einzige Unternehmen, das nicht auswerten der rechten Seite zuerst. Ich glaube, diese Vorstellung, dass eine zusammengesetzte Zuweisung-operator wertet der rechten Seite die erste ist ein Fehler.

Vom 15.26.2 Zusammengesetzte Zuweisungsoperatoren:

Eine zusammengesetzte Zuweisung Ausdruck der form E1 op= E2 entspricht E1 = (T)((E1) op (E2))wo T ist die Art der E1außer dass E1 wird nur einmal ausgewertet.

Als Beweis der folgende Abschnitt wirft einen NullPointerExceptionnicht ein ArrayIndexOutOfBoundsException.

    int[] a = null;
    int[] b = {};
    a[0] += b[-1];

InformationsquelleAutor der Frage polygenelubricants | 2010-02-24

Schreibe einen Kommentar