Ruby字符串插值拼接多变量时如何正确插入换行符?
结论
你的写法完全正确,已经在各个变量之间插入了真实的换行符,你在irb返回结果中看到的\n只是调试输出的转义展示效果,不是字符串实际存储的内容。
原因说明
Ruby 中双引号包裹的字符串支持转义字符解析,你写的\n会被识别为ASCII码为10的真实换行符,而非\和n两个普通字符。
你在irb里直接输入变量名得到的输出,是字符串调用inspect方法的结果,这个方法的作用就是把字符串里的不可见特殊字符转换为可打印的转义序列,方便开发者识别内容,所以才会把换行符显示为\n、把字符串内的双引号显示为\"。
验证方式
你可以通过以下操作确认换行符真实存在:
- 执行
puts signature,控制台会直接输出换行后的效果,每个变量值单独占一行 - 执行
signature.include?("\n"),返回结果为true,说明字符串中包含真实换行符 - 执行
signature[ts.length] == "\n",返回结果为true,可验证第一个变量结束后紧跟的就是换行符
内容的提问来源于stack exchange,提问作者mr_muscle
相关产品推荐
相关产品推荐

