2016-03-25 26 views
0

gets.chompの代わりに、私はそれらの応答をブール値にするために使用できるものはありますか?どのように変数をブール値に設定するのですか?

puts "Do you like pizza? (yes or no)" 
pizza = gets.chomp  
if pizza == "yes" 
    pizza = true 
else 
    pizza = false 
end 

私はgets.to_bgets.boolを試してみましたが、それが動作しているようだしません。

puts 'Do you like pizza? (yes or no)' 
pizza = gets[0] == 'y' 

それとも:私はちょうど最初の文字を返し、あなたがYまたははいを受け入れることができますどのようなget[0]を使用することになり

puts "Do you like pizza? [yes/no]:" 
pizza = gets.chomp  
case pizza 
    when 'y','Y','yes' 
    pizza = true 
    when 'n', 'N','no' 
    pizza = false 
end 
puts pizza 
+4

それより短いか、 'pizza = gets.chomp == 'yes''です。しかし、はい、あなたはこれの変形をする必要があります。 Rubyは '' yes ''が' true'を意味するべきであるということを全く知らない –

+2

ところで、 'chomp'がそこで何をしているのか分かりますか?それともどこかからコピーしましたか? –

+0

ありがとうございました!私の理解から、chompは追加を行う改行を削除します。正しい軌道にいるのですか? –

答えて

1

あなたはこのような何かを行うことができますStringto_bメソッドを定義することができます。

class String 
    def to_b 
    # might want to add even more values to the list 
    %w(y yes true 1).include?(self.chomp.downcase) 
    end 
end 

'yes'.to_b 
#=> true 
'no'.to_b 
#=> false 
関連する問題