gpt4 book ai didi

ruby - 如何将字符串与 Ruby 中的命令提示符输入进行比较

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

我两天前才开始研究 Ruby 语言,很快就发现我太局限于 C 派生语言的思维方式了......我正在尝试对字符串进行这样的比较:

def menu_listen
action = gets
while !(action.eql?("up")) && !(action.eql?("down")) && !(action.eql?("close")) do
puts "'#{action}' is not a valid command at this time."
action = gets
end
return action
end

...早先是这样写的:

def main_listen
action = gets
while action != "up" && action != "down" && action != "close" do
puts "'#{action}' is not a valid command at this time."
action = gets
end
return action
end

我在该站点上读到 thisString.eql?(thatString) 与 thisString == thatString 相同,这似乎是因为两者都不起作用。我在命令提示符中输入的任何输入都不会通过 while 循环并给我这样的响应:

'down
' is not a valid command at this time.

那么这是否意味着按下回车键也会在命令提示符输入中存储为一个新行?谁能告诉我如何实现它以便字符串比较正常工作?

最佳答案

gets 也接受 eol 字符,所以使用 gets.chomp 只接受实际的字符串。 chomp方法会删除您的回车符和换行符。

就字符串比较而言,它更像 ruby​​,只是比较您的输入是否存在于预定义字符串数组中,而不是链接 &&eql?,例如:

while not %w(up down close).include? action do

这比链接更简洁,也更容易修改。

关于ruby - 如何将字符串与 Ruby 中的命令提示符输入进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13408301/

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