如何解决为什么Ruby的“ gets”包括结尾的换行符?
| 我永远不需要从gets
得到的结尾换行符。一半的时间我忘了to1ѭ,这真是太痛苦了。
为什么在那儿?
解决方法
类似于
puts
(听起来类似),它被设计为使用\\n
字符与线条一起使用。
“ 0”带有一个可选参数,用于“拆分”输入(或“读”直到到达),默认为特殊的全局变量“ 5”,默认情况下包含“ 3”。
gets
是读取流的非常通用的方法,并包含此分隔符。如果不这样做,部分流内容将丢失。
, var = gets.chomp
这一切都为您服务。
, 如果查看IO#gets
的文档,您会注意到该方法采用可选参数sep
,默认值为$/
(输入记录分隔符)。您可以决定将输入分割为换行以外的其他内容,例如段落(\“零长度分隔符一次读取输入的段落(在输入的单独段落中连续两个换行符)\”):
>> gets(\'\')
dsfasdf
fasfds
dsafadsf #=> \"dsfasdf\\nfasfds\\n\\n\"
, 从性能的角度来看,更好的问题是“为什么要摆脱它?”。费用不算高,但是在后台您必须付费才能截断返回的字符串。尽管您可能从未遇到过需要的情况,但您肯定有很多不关心的情况-gets s; puts stuff() if s =~ /y/i
,等等。在这些情况下,您会看到(微小的)通过不砍性能改善。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。