Ruby 为什么';t`";您好\r";。chomp(';';)`remove`\r";`?
尽管该报告描述了: 如果Ruby 为什么';t`";您好\r";。chomp(';';)`remove`\r";`?,ruby,newline,Ruby,Newline,尽管该报告描述了: 如果$/是空字符串,它将从字符串中删除所有尾随的换行符 “hello\r”.chomp(“”)不会删除“\r”,如下所示 "hello\r\n".chomp # => "hello" "hello\r".chomp # => "hello" "hello\r\n".chomp('') # => "hello" "hello\r".chomp('') # => "hello\r" 为什么? 如果$/是空字符串,它将从字符串中删除
$/
是空字符串,它将从字符串中删除所有尾随的换行符
“hello\r”.chomp(“”)
不会删除“\r”
,如下所示
"hello\r\n".chomp # => "hello"
"hello\r".chomp # => "hello"
"hello\r\n".chomp('') # => "hello"
"hello\r".chomp('') # => "hello\r"
为什么?
如果$/是空字符串,它将从字符串中删除所有尾随的换行符
没错<代码>\rAKACR
不是换行符。它是一个回车字符(不开始新行)
至于为什么chomp(“”)
删除CRLF,这是因为CRLF是Windows风格的换行符。Linux使用LF
旧的Mac操作系统(直到v9)都在使用CR,但最近的操作系统(OSX)没有。因此,就ruby而言,“CR作为换行符”并不存在。简单的解释是,
\r
不是换行符,而是回车符。因此chomp()
完全按照手册中的说明执行
详细的解释可以在维基百科页面上找到