我已經開始學習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'。 –