在 Ruby 中如何创建不转义的多行字符串
今天遇到的字符串转义问题,开始的路走错了,总想把转义后的字符串解析成不转义的字符串。理论应该也可以做到,应该要看到字符串内部任何解析的了。
问题 #
在解决 这个问题 的时候,我需要计算字符串在没有转义之前的长度。
因为我要解析的文本是一个多行的字符串,所以我打算在运行时把转义后的字符串解析成非转义的字符串。
但是似乎很难做到,即使替换反斜杠 \ 到 \ 也没有作用。想想还是要在输入的就写成不转义的字符串。
我们知道在 Ruby 中,不转义字符串使用单引号来创建。
puts '\x27'
# \x27
但是多行如何创建呢。
Heredoc 多行字符串 #
example = <<~'END'
""
"abc"
"aaa\"aaa"
"\x27"
END
通过给 Heredoc 块的标识加上单引号即可以转变为不转义的字符串。
文件读取 #
File.binread("puzzle_input.txt")
通过使用 IO 类的 binread 二进制读取方法来获得不转义的字符串。
- Previous: Ruby 中的 `Array.new` 中的默认值参数,指向的同一个对象