我已经开始学习Ruby。我有一个小项目来构建游戏,并试图创建一个接收用户输入并相应处理的函数。我可以在case语句中使用.include?()吗?红宝石
def Game.listener
print "> "
while listen = $stdin.gets.chomp.downcase
case listen
when (listen.include?("navigate"))
puts "Navigate to #{listen}"
break
when ($player_items.include?(listen))
Items.use(listen)
break
end
puts "Not a option"
print "> "
end
end
但是,case语句无法检测到我键入了导航。有没有办法解决这个问题,或者如果我完全失去了方向,有人能指出我的方向吗?
我发现这种方式来解决我的问题,这是一种安全可靠的方式?
while listen = $stdin.gets.chomp
case listen.include?(listen)
when listen.include?("navigate")
puts "Navigate to #{listen}"
when listen.include?("test")
puts "test"
when $player_items.include?(listen)
puts "Using the #{$player_items[listen]}"
break
else
puts "Not a option"
end
print "> "
end
使用正则表达式使用'[]' - 注释,'扫描'或'匹配'。 –
@ sagarpandya82谢谢。你能否给我提供一个如何工作的例子?我是这个领域的新手 – MrSlippyFist
'(listen.include?(“navigate”))'equals'true'或'false',所以如果listen等于那个逻辑值,则执行下面的行。这不是你想要的。你需要将'case listen'更改为'case'。 –