而不是gets.chomp
,我可以使用任何东西将他们的响应变成布尔值吗?
puts "Do you like pizza? (yes or no)"
pizza = gets.chomp
if pizza == "yes"
pizza = true
else
pizza = false
end
我尝试了gets.to_b
和gets.bool
,但它似乎没有效果。
答案 0 :(得分:3)
我只会使用get[0]
返回第一个字符的内容,并允许您接受 y 或是:
puts 'Do you like pizza? (yes or no)'
pizza = gets[0] == 'y'
或者您可以自己在to_b
上定义String
方法:
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
答案 1 :(得分:1)
您可以这样做:
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