" while listen = $-6ren">
gpt4 book ai didi

ruby - 我可以在 case 语句中使用 .include?() 吗? ruby

转载 作者:数据小太阳 更新时间:2023-10-29 07:26:39 25 4
gpt4 key购买 nike

我已经开始学习 Ruby。我有一个构建游戏的小项目,并尝试创建一个函数来接收用户输入并相应地处理它。

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 语句无法检测到我输入了 navigate。有没有办法解决这个问题,或者如果我完全无法解决这个问题,有人可以为我指明正确的方向吗?

我找到了解决问题的方法,安全可靠吗?

  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

最佳答案

如果你想使用case而不是if-elsif block ,那么你可以这样写(注意case后面的空格):

while listen = $stdin.gets.chomp
case
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 an option"
end

print "> "
end

关于ruby - 我可以在 case 语句中使用 .include?() 吗? ruby ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40868693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com