[Ruby] Notes sur la méthode gets

Quand je l'ai comparé avec la chaîne de caractères de l'entrée standard, cela n'a pas fonctionné pour une raison quelconque. La cause et la solution sont décrites dans un mémorandum.

problème

La méthode gets est une méthode pour recevoir une chaîne de caractères à partir d'une entrée standard. Si vous essayez de comparer une chaîne d'entrée obtenue à l'aide de cette méthode avec une autre chaîne Je n'ai pas obtenu les résultats escomptés.

input = gets #Entrez hoge
bool = (input == 'hoge')
print bool 
false

Je devrais comparer des chaînes avec la même valeur, mais pour une raison quelconque, «false» est renvoyé.

Cause

Après vérification, il semble que la méthode gets ajoute le ** code de saut de ligne (\ n) ** à la fin par défaut.

input = puts #Entrez hoge
p input
"hoge\n"

J'essayais de comparer avec le code de saut de ligne inclus, donc il semble qu'il a été joué même si je l'ai comparé.

Solution

Il semble que je devrais supprimer le code de saut de ligne à la fin, alors je l'ai vérifié, Il existe une méthode chomp comme méthode pour cela, Quand j'ai utilisé ceci, j'ai obtenu le résultat attendu!

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

Supplément

Je pensais que «chomp» était une abréviation pour quelque chose, et quand je l'ai recherchée, la réponse en teratail était utile. Que signifie chomp?

Il contient beaucoup de spéculations À l'origine, il y avait du hachage et j'ai pu effacer le dernier caractère. C'était une manière (Unix) que la fin du fichier texte se termine par un saut de ligne, donc c'était bien. Il y a un problème qu'il n'y a pas de saut de ligne à la fin et il y a des environnements où ce n'est pas un seul caractère Une fonction "supprimer les pauses de fin" a été ajoutée et elle est maintenant chomp car elle est destinée au hachage multiligne.

Il semble que la méthode chomp soit utilisée pour supprimer le code de saut de ligne du dernier caractère de chop.

référence

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

Recommended Posts

[Ruby] Notes sur la méthode gets
Remarques sur le fil de discussion Ruby # [] = méthode
[Ruby on Rails] Méthode d'aide pratique
Méthode Ruby to_s
Méthode d'installation de Ruby on Rails [édition Mac]
Notes de Ruby Hash
Remarques sur l'utilisation de FCM avec Ruby on Rails
[Ruby] méthode d'initialisation
Méthode de construction Ruby
Méthode d'accesseur Ruby
méthode de la carte rubis
[Ruby on Rails] Aucune erreur de méthode méthode non définie `devise_for'error resolution
Ruby on Rails Comment implémenter la saisie d'adresse automatique
Remarques sur les tampons de protocole
abréviation de la méthode ruby
mémo python sur docker
[Android] Notes sur xml
Notes sur les expressions régulières
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
définition de la méthode ruby
Association Ruby On Rails
[Ruby] Résumé des définitions de méthode
[Java] Notes de méthode de base
Résumé des méthodes de mise à jour de plusieurs colonnes [Ruby on Rails]
Ruby on Rails Résumé des exemples de méthodes de refactoring autour de MVC
Tutoriel Ruby on Rails Remarques gênantes lors de l'exécution sous Windows
[Ruby on Rails] Fonction de recherche (modèle, formule de sélection de méthode)
Record d'apprentissage de Ruby on rails -2020.10.03
Création de portfolio Ruby on Rails
Record d'apprentissage Ruby on rails -2020.10.04
[Ruby on Rails] Debuck (binding.pry)
Record d'apprentissage de Ruby on rails -2020.10.05
Record d'apprentissage de Ruby on rails -2020.10.09
[Ruby on Rails] méthode indéfinie ʻid'for nil: méthode de résolution d'erreur NilClass
Comment vérifier les nombres entiers avec ruby
Algorithme Ruby (injection, définition de méthode)
Recherche d'enregistrements Ruby on Rails, création sinon méthode find_or_create_by
Installez Ruby 2.7 sur RHEL 8 (AppStream)
Record d'apprentissage Ruby on rails-2020.10.07 ①
Annuler la migration de Ruby on Rails
Installez Ruby 2.7 sur CentOS 7 (SCL)
Record d'apprentissage de Ruby on rails -2020.10.06
[Ruby] Méthode qui renvoie la vérité
Résumé de la validation Ruby on Rails
Mémorandum de base Ruby on Rails
[ruby] Appel d'une méthode avec un argument
Installez Ruby sur le VPS de Sakura