[Ruby] Wofür wird `!!` verwendet?

Einführung

Es kommt mir nicht in den Sinn, selbst wenn ich herumgehe ... Es ist ein Gefühl des Unbehagens, Japanisch zu verwenden, das zu fehlen scheint ...

Ich werde es mit meiner eigenen Interpretation schreiben, die ich aufgeschaut und gesehen habe

! Ist ein logischer Operator

Ein logischer Operator ist ein Operator, der true oder false zurückgibt.

Andere logische Operatoren sind "und" und "oder"

! Wertet das Objekt aus

Gibt true zurück, wenn nil oder false

Gibt false zurück, wenn true

Das ist !

Das heißt, ein negativer logischer Operator

Beispiel

irb(main):018:0> !nil => true irb(main):019:0> !false => true irb(main):020:0> !true => false


#### ~~ `!!` ist ein negativer logischer Operator von negativ ~~

 * @scivola kommentierte, dass der einzelne logische Operator `!!` nicht geöffnet ist. Das Obige scheint kein angemessener Ausdruck zu sein, daher werde ich ihn korrigieren, danke! * *

#### Was ist "!!"

 Durch zweimaliges Wiederholen von "!" Wird das Wahre oder Falsche, das im ersten "!" Zurückgegeben wurde, erneut geleugnet.

 Gibt false zurück, wenn nil oder false

 Gibt ture zurück, wenn true

 Mit anderen Worten, Sie leugnen die Ablehnung.
 > Beispiel

>```
irb(main):025:0> !!false
=> false
irb(main):026:0> !!nil
=> false
irb(main):027:0> !!true
=> true

Nun, ich weiß nicht, wofür es verwendet wird.

Fehlt es nicht? Haben Sie das Gefühl, dass Sie Japanisch so verwenden?

Die Antwort ist ein logischer Operator. War das

Der logische Operator wertet ein logisches Wertobjekt aus und gibt es zurück (true, false).

Natürlich sind die Rückgabewerte aller Objekte nicht unbedingt logische Wertobjekte.

irb(main):001:0> a = "Ah"
=> "Ah"
irb(main):002:0> a
=> "Ah"

Wenn Sie also wahr oder falsch wollen und ohne !! schreiben, sieht es so aus

irb(main):028:0> a = "Ah"
=> "Ah"
irb(main):029:0> a ? true : false
=> true

Aber wenn Sie !! verwenden

irb(main):031:0> a = "Ah"
=> "Ah"
irb(main):032:0> !!a
=> true

Damit können Sie in zwei Buchstaben anrufen! Erstaunlich schlau! !!

Das war mein Verdienst ~ Das war's!

Recommended Posts

[Ruby] Wofür wird `!!` verwendet?
Was ist ein Ruby-Modul?
[Ruby] Was ist eine Instanz?
Wofür ist der Konstruktor?
Was ist ein zweidimensionales Ruby-Array?
Was ist Cubby?
Was ist null? ]]
Was ist java
Was ist Schlüsselumhang?
Was ist Maven?
[Technischer Hinweis] Was ist "include" in Ruby?
Was ist Selbst
Was ist Jenkins?
Was ist ArgumentMatcher?
Was ist IM-Jonglieren?
[Für Anfänger] Ruby soll Rubin sein, aber was ist damit?
Was ist SLF4J?
[Für Super-Super-Anfänger] Was ist Objektorientierung?
Was ist Fassade? ??
Was ist Java <>?
Was ist Gradle?
Was ist POJO?
Was ist java
Wofür ist das Fassadenmuster nützlich?
Was ist centOS?
Was ist RubyGem?
Was ist before_action?
Was ist Docker?
Was ist Byte?
Was ist Tomcat?
[Ruby] Was passiert, wenn das Selbst der Methode als Rückgabewert verwendet wird?
Was ist der flüchtige Modifikator für Java-Variablen?
Was ist Maven Assembly?
Was ist Docker-Compose?
Was ist ein Konstruktor?
Was ist vue cli
Abkürzung für Ruby-Methode
Was ist eine Schnittstelle?
Was ist Rubys Selbst?
Was ist harte Codierung?
Was ist ein Stream?
Was ist Rubys attr_accessor?
Was ist Java-Kapselung?
Was ist die Erlaubnis verweigert?
Was ist Instanzsteuerung?
Was ist ein Initialisierer?
Was ist ein Operator?
Was ist Objektorientierung?
Was ist Guavas @VisibleForTesting?
Was ist ein MVC-Modell?
Was ist eine Anmerkung?
Was ist Java-Technologie?
Was ist Java API-Java?
Was ist @ (Instanzvariable)?
Was ist Gradles Artefakt?
Was ist JPA-Prüfung?