[Ruby] Hinweise zur Methode gets

Als ich es mit der Zeichenkette aus der Standardeingabe verglichen habe, hat es aus irgendeinem Grund nicht funktioniert. Ursache und Lösung werden als Memorandum beschrieben.

Problem

Die get -Methode ist eine Methode zum Empfangen einer Zeichenfolge von der Standardeingabe. Wenn Sie versuchen, eine mit dieser Methode erhaltene Eingabezeichenfolge mit einer anderen Zeichenfolge zu vergleichen Ich habe nicht die erwarteten Ergebnisse erzielt.

input = gets #Hoge betreten
bool = (input == 'hoge')
print bool 
false

Ich sollte Zeichenfolgen mit demselben Wert vergleichen, aber aus irgendeinem Grund wird "false" zurückgegeben.

Ursache

Nach der Überprüfung scheint es, dass die get -Methode standardmäßig ** Zeilenvorschubcode (\ n) ** am Ende hinzufügt.

input = puts #Hoge betreten
p input
"hoge\n"

Ich habe versucht, mit dem enthaltenen Zeilenvorschubcode zu vergleichen, daher scheint es, dass er abgespielt wurde, auch wenn ich ihn verglichen habe.

Lösung

Es scheint, dass ich den Zeilenvorschubcode am Ende löschen sollte, also habe ich ihn überprüft und gefunden Es gibt eine "Chomp" -Methode als Methode dafür, Als ich das benutzte, bekam ich das erwartete Ergebnis!

input = gets.chomp #Hoge betreten
bool = (input == 'hoge')
print bool 
true

Ergänzung

Ich dachte, dass "Chomp" eine Abkürzung für etwas ist, und als ich es nachschlug, war die Antwort in Teratail hilfreich. Wofür steht Chomp?

Es enthält viele Spekulationen Ursprünglich gab es Chop und ich konnte das letzte Zeichen löschen. Es war eine (Unix-) Art und Weise, dass das Ende der Textdatei mit einem Zeilenumbruch endet, also war dies in Ordnung. Es gibt ein Problem, dass am Ende kein Zeilenumbruch auftritt und es Umgebungen gibt, in denen es sich nicht um ein einzelnes Zeichen handelt Eine Funktion zum Entfernen von Zeilenumbrüchen wurde hinzugefügt und ist chomp, da sie für mehrzeilige Chops vorgesehen ist.

Es scheint, dass die "chomp" -Methode verwendet wird, um den Zeilenvorschubcode aus dem letzten Zeichen von "chop" zu löschen.

Referenz

https://stackoverflow.com/questions/21504202/why-is-stringchomp-named-like-this

Recommended Posts

[Ruby] Hinweise zur Methode gets
Hinweise zu Rubys Thread # [] = Methode
[Ruby on Rails] Praktische Hilfsmethode
Ruby to_s Methode
Ruby on Rails-Installationsmethode [Mac Edition]
Ruby Hash Notizen
Hinweise zur Verwendung von FCM mit Ruby on Rails
[Ruby] Initialisierungsmethode
Ruby-Build-Methode
Ruby-Accessor-Methode
Ruby Map Methode
[Ruby on Rails] Kein Methodenfehler undefinierte Methode `devise_for'error Auflösung
Ruby on Rails So implementieren Sie die automatische Adresseneingabe
Hinweise zu Protokollpuffern
Abkürzung für Ruby-Methode
Python-Memo auf Docker
[Android] Hinweise zu XML
Hinweise zu regulären Ausdrücken
Ruby on Rails Elementary
Ruby on Rails Grundlagen
Definition der Rubinmethode
Ruby On Rails Association
[Ruby] Zusammenfassung der Methodendefinitionen
[Java] Grundlegende Methodenhinweise
Zusammenfassung der Methoden zum Aktualisieren mehrerer Spalten [Ruby on Rails]
Ruby on Rails Zusammenfassung der Beispiele für Refactoring-Methoden rund um MVC
Ruby on Rails-Lernprogramm Problematische Hinweise unter Windows
[Ruby on Rails] Suchfunktion (Modell, Methodenauswahlformel)
Ruby on Rails Lernrekord -2020.10.03
Portfolioerstellung Ruby on Rails
Ruby on Rails Lernrekord -2020.10.04
[Ruby on Rails] Debuck (bindend.pry)
Ruby on Rails Lernrekord -2020.10.05
Ruby on Rails Lernrekord -2020.10.09
[Ruby on Rails] undefinierte Methode `id'for nil: NilClass-Fehlerbehebungsmethode
Wie man ganze Zahlen mit Rubin überprüft
Ruby-Algorithmus (Injizieren, Methodendefinition)
Ruby on Rails-Datensatzsuche, erstellen Sie die Methode find_or_create_by, wenn nicht
Installieren Sie Ruby 2.7 auf RHEL 8 (AppStream)
Ruby on Rails lernen Rekord-2020.10.07 ①
Brechen Sie die Ruby on Rails-Migration ab
Installieren Sie Ruby 2.7 unter CentOS 7 (SCL)
Ruby on Rails Lernrekord -2020.10.06
[Ruby] Methode, die die Wahrheit zurückgibt
Zusammenfassung der Ruby on Rails-Validierung
Ruby on Rails Grundlegendes Memorandum
[ruby] Eine Methode mit einem Argument aufrufen
Installieren Sie Ruby auf Sakuras VPS