Ruby'==';不起作用

Ruby'==';不起作用,ruby,exit,Ruby,Exit,这是我的密码: @cmd == "exit" 当@cmd是字符串变量“exit”时,它不会返回true。有什么建议吗 -编辑- -决心 错误:因为@cmd是使用“@cmd=gets”生成的,它将“\n”添加到@cmd。谢谢你的帮助 看看@cmd到底是什么: p @cmd 或者尝试: @cmd.to_s == "exit" @cmd必须包含exit以外的内容。@cmd是否可能包含某种空格字符,如换行符或空格?或许可以尝试: @cmd.chomp! @cmd.strip! @cmd == "e

这是我的密码:

@cmd == "exit"
当@cmd是字符串变量“exit”时,它不会返回true。有什么建议吗

-编辑-

-决心


错误:因为@cmd是使用“@cmd=gets”生成的,它将“\n”添加到@cmd。谢谢你的帮助

看看
@cmd
到底是什么:

p @cmd
或者尝试:

@cmd.to_s == "exit"
@cmd必须包含exit以外的内容。@cmd是否可能包含某种空格字符,如换行符或空格?或许可以尝试:

@cmd.chomp!
@cmd.strip!
@cmd == "exit"

如果@cmd是从$stdin.readline设置的,那么它很可能包含换行符。剥皮和咀嚼将有助于消除不确定性。

@cmd
在这种情况下将不会是
“退出”
。咀嚼-咀嚼-咀嚼可能是:O谢谢,我刚刚意识到“@cmd”在结尾\n。我使用gets获取“@cmd”并将其添加到\n结尾。有关如何删除\n.@learningcoder的任何想法,请参阅Kyle Burton的答案<代码>@cmd.chomp应该去掉尾随空格。哦,是的,有一个答案可以更好地涵盖这一点,请参阅@Kyle'sanswer@learningcoder看起来你是新来的,所以我想指出,如果有人回答你的问题,点击问题左侧的复选标记(在分数下)是礼貌的表明此答案回答了您的问题。