假设我想在我的 ruby 代码中内嵌一大块漂亮的打印 html 代码。在不丢失字符串中的任何格式或不必记住某种 gsub 正则表达式的情况下,最干净的方法是什么。
将它们全部编码在一行中很容易,但很难阅读:
1.times do
# Note that the spaces have been changed to _ so that they are easy to see here.
doc = "\n<html>\n__<head>\n____<title>\n______Title\n____</title>\n__</head>\n__<body>\n____Body\n__</body>\n</html>\n"
ans = "Your document: %s" % [doc]
puts ans
end
ruby 中的多行文本更易于阅读,但字符串不能与其余代码一起缩进:
1.times do
doc = "
<html>
<head>
<title>
Title
</title>
</head>
<body>
Body
</body>
</html>
"
ans = "Your document: %s" % [doc]
puts ans
end
例如,以下代码与我的代码一起缩进,但字符串现在每行前面有四个额外的空格:
1.times do
doc = <<-EOM
<html>
<head>
<title>
Title
</title>
</head>
<body>
Body
</body>
</html>
EOM
ans = "Your document: %s" % [doc]
puts ans
end
大多数人使用上面的 HEREDOC 代码,并对结果进行正则表达式替换,以去除每行开头的额外空格。我想要一种不必每次都经历正则表达式的麻烦的方法。