ste*_*lag 18 ruby newline language-design
我从来不需要我得到的结尾换行符gets.有一半时间我忘了它chomp,这是一个痛苦....
为什么会这样?
喜欢puts(听起来很相似),它被设计为使用\n角色来处理线条.
gets采用一个可选的参数,用于"拆分"输入(或"只读到它到达).它默认为特殊的全局变量$/,\n默认包含一个.
gets是一个非常通用的读数流方法,包括这个分隔符.如果它不这样做,流内容的一部分将丢失.
小智 5
var = gets.chomp
Run Code Online (Sandbox Code Playgroud)
这一切都为您提供了一条线.
从性能的角度来看,更好的问题是“为什么我应该摆脱它?”。这并不是一个很大的成本,但在幕后你必须支付费用来咀嚼返回的字符串。虽然你可能从来没有遇到过需要它的情况,但你肯定遇到过很多你不关心的情况——gets s; puts stuff() if s =~ /y/i等等。在这些情况下,你会看到(微小的)性能改进,而不是咀嚼。