我学习红宝石而且有点卡住了。如果用户将问题留空,他们希望我们将变量设置为nil。否则将他们的答案转换为整数。我想出了以下内容,但是当我把答案留空时,它会打印出0.你能指引我朝正确的方向前进吗?
puts "What's your favorite number?"
number = gets.chomp
if number == ' '
number = nil
else
number = number.to_i
end
p number
答案 0 :(得分:0)
您有一个额外的空间 - if number == ' '
- 这应该是if number == ''
另一种方法是说if number.length == 0
答案 1 :(得分:0)
你可以这样做
if number.empty?
number = nil
else
number = number.to_I
end
或单行你可以这样做
number = number.empty? ? nil : number.to_i
答案 2 :(得分:0)
您只测试输入的数字是否明确为单个空格。如果你正在测试空白'您可能想要strip
收到的输入,然后测试它是empty?
。
E.g。
number = gets.strip
if number.empty?
number = nil
else
number = number.to_i
end
您已使用ruby-on-rails对此进行了标记,因此如果blank?
返回true(即字符串为空或仅包含空格),我假设您正在考虑将字符串设为空白如果您正在使用rails,那么您可以使用blank?
方法来测试输入:
number = gets
if number.blank?
number = nil
else
number = number.to_i
end