Ruby:如果我使用`.downcase!`,我的代码就不会通过

时间:2015-08-09 00:31:01

标签: ruby switch-statement

我试图在电影中完成一个夜晚"关于CodeCademy的Ruby课程,遇到了一个小问题:如果我在downcase!上使用choice并且输入是小写的,我的代码不会通过 - 如果它包含大写字母或者完全是大写,它工作正常。

这是我的代码:

movies = {
Foo: "Bar",
}

puts "Commands:"
puts "Add - Add a movie and its rating."
puts "Update - Update a movie's rating."
puts "Display - Display all movies and their ratings."
puts "Delete - Delete a movie and its rating."

choice = gets.chomp.downcase!

case choice
when 'add'
  puts "Added!"
when 'update'
  puts "Updated!"
when 'display'
  puts "Movies!"
when 'delete'
  puts "Deleted!"
else 
  puts "Error!"
end

帮助?

1 个答案:

答案 0 :(得分:4)

尝试使用#downcase代替#downcase!

您的代码未传递的原因是因为在已经小写的字符串上使用#downcase!时,返回的结果为nil,然后将其分配给您的choice变量。

使用#downcase将返回字符串本身,即使提供的字符串已经是小写的。

希望它有所帮助!