0

一个简单的问题,但无法弄清楚如何解决它,缺乏Ruby语言的知识:

类游戏
  定义初始化
    获取命令
  结尾
  def get_command
    命令 = 获取
    放置命令 # => 位置
    puts command != "POSITION" # => true
    如果命令!=“位置”
      命令 = 获取命令
    别的  
      返回真
    结尾
  结尾
结尾

a = Game.new

每当我运行一个应用程序并键入POSITION它时,它总是得到true比较,"POSITION"谁能解释为什么?

谢谢

4

1 回答 1

2

因为你实际得到的是“POSITION\n”。你可以在 irb 中看到:

1.9.3p194 :061 > command = gets
POSITION
 => "POSITION\n"

在进行比较之前,您应该剥离命令​​:

command = gets.strip

或者

command = gets.chomp

这将从输入中去除空格(包括换行符)。

于 2012-09-28T01:54:43.393 回答