Ruby gets()没有返回正确的字符串

ICo*_*mer 1 ruby if-statement gets input

我决定在听到所有关于它的好东西之后给Ruby一个忙,但到目前为止它只给了我一个艰难的时间.很久以前我在学习Python时创建了一个"搜索引擎",它只是将数据存储在数组中并检查搜索关键字是否在其中,我一直在尝试在Ruby中做同样的事情.

虽然它不像Python那样直观,但我的搜索功能正常运行.但是,我在处理用户输入时遇到了麻烦.我想检查输入是否等于插入,搜索退出,但它只是不起作用.我真的不知道如何使用获取,所以我假设问题与获取有关.

while true
  puts 'What do you want to do?'
  choice = $stdin.gets

  puts choice # => quit

  if choice == 'quit'
    break
  end
end
Run Code Online (Sandbox Code Playgroud)

如果语句不工作.我到底做错了什么?为了上帝的缘故,这在C++中是微不足道的!

我真的很感激一些帮助.Ruby对我来说太陌生了......谢谢!

dav*_*rac 6

我认为获取包括输入结尾的换行符.尝试使用gets.chomp替代

irb(main):001:0> input = $stdin.gets
hello
=> "hello\n"
irb(main):002:0> input = $stdin.gets.chomp
hello
=> "hello"
Run Code Online (Sandbox Code Playgroud)