ruby - 有没有时间会在没有“ chomp”的情况下使用“ gets”?

在用ruby收集用户输入时,是否有一段时间对该输入使用chomp不是期望的行为?也就是说,简单地使用gets而不是gets.chomp是合适的。

最佳答案

是的,如果您指定输入的最大长度,那么返回值中包含“\n”可以告诉您ruby是因为遇到“\n”而给您gets个字符,还是因为x是最大的输入大小:

> gets 5
abcdefghij
=> 'abcde'

VS:
> gets 5
abc\n
=> 'abc\n'

如果返回的字符串不包含尾随换行符,则表示缓冲区中仍有字符。
如果没有对输入的限制,尾随的换行符或任何其他分隔符可能没有多大用处,但为了保持一致性而保留了它。

本文翻译自 https://stackoverflow.com/questions/32146678/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 ruby chomp


相关文章:

ruby-on-rails - 在Rails中更改当前页面导航链接的类

mysql - 错误1064(42000)无法授予特权

ruby - 在Ruby中读取文件时如何删除换行符

ruby - 如何一次将数组中的每一行都切掉?

ruby - 崇高的文字无法理解gets.chomp

ruby - Date与nil的比较失败-红宝石

ruby-on-rails - 如何在Rails应用程序中重新加载schema.rb?

ruby - 将数组转换为红宝石中的嵌套哈希[关闭]