Ruby 中 heredoc 的用法?

· 约 3 分钟读完 · 第 18 / 199 章

推荐答案

在 Ruby 中,heredoc 是一种用于定义多行字符串的语法。它通常用于嵌入大段文本或代码片段。heredoc 的基本语法如下:

在这个例子中,<<~HEREDOC 表示开始一个 heredoc,HEREDOC 是结束标记符。<<~ 表示使用“缩进感知”的 heredoc,它会自动去除每行前面的缩进。

本题详细解读

1. 基本语法

heredoc 的基本语法是使用 << 或 <<~ 后跟一个标识符(通常是全大写的单词),然后在下一行开始写入多行文本,最后以相同的标识符结束。

2. 缩进感知的 heredoc

使用 <<~ 可以让 heredoc 自动去除每行的前导缩进,这在需要保持代码整洁时非常有用。

3. 嵌入变量

heredoc 中可以嵌入 Ruby 变量,变量会被自动解析。

4. 结束标识符

结束标识符必须单独占一行,并且不能有缩进。如果标识符前面有空格或其他字符,Ruby 会认为这是字符串的一部分,而不是结束标记。

5. 使用不同的结束标识符

你可以使用任何有效的标识符作为结束标记,只要它在开始和结束时一致即可。

6. 嵌套 heredoc

虽然不常见,但你可以在 heredoc 中嵌套另一个 heredoc。

7. 使用 heredoc 作为方法参数

heredoc 可以作为方法的参数传递。

8. 注意事项

  • heredoc 的结束标识符必须单独占一行,且不能有缩进。
  • 使用 <<~ 时,Ruby 会自动去除每行的前导缩进,但不会去除结束标识符的缩进。
  • heredoc 中的变量插值会在字符串生成时进行解析。