Kann jemand `not` vs`! `In Ruby erklären?
Ich erinnere mich, irgendwo gelesen zu haben, dass not
und !
werden unterschiedlich ausgewertet, und ich kann ihn nicht finden in der ruby-Dokumentation. Ist das wahr? Sind Sie Synonym?
Gut Antworten zitieren der Dokumentation.
InformationsquelleAutor der Frage 0112 | 2014-12-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie fast Synonym, aber nicht ganz. Der Unterschied ist, dass
!
hat eine höhere Priorität alsnot
viel wie&&
und||
sind von höherer Priorität alsand
undor
.!
hat die höchste Priorität aller Operatoren undnot
einer der niedrigsten, die Sie finden können die vollständige Tabelle auf der Ruby-docs.Als Beispiel:
Im ersten Beispiel
!
hat die höchsten Vorrang, so dass Sie tatsächlich sagen:false && false
.Im zweiten Beispiel
not
hat eine niedrigere Rangfolge alstrue && false
, also das "einschalten" derfalse
austrue && false
zutrue
.Allgemeine Leitlinie scheint zu sein, dass Sie sollten stick to
!
es sei denn, Sie haben einen besonderen Grund zur Benutzungnot
.!
in Ruby verhält sich wie die meisten anderen Sprachen, und weniger "überraschend" alsnot
.InformationsquelleAutor der Antwort Brennan
Eine einfache Möglichkeit zu verstehen, die
not
operator ist, indem wirnot true && false
als gleichwertig zu!(true && false)
InformationsquelleAutor der Antwort roniegh