You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中‘<<~’的名称及工作原理是什么?

Ruby 里的 <<~ 语法解析

这是 Ruby 2.3 及以后版本加入的波浪 heredoc(squiggly heredoc),属于多行字符串定义语法 heredoc 的变体,核心作用是自动移除内容里的前导缩进,让代码排版更规整。

关键区别

  • 和普通 heredoc(<<)比:它会自动去掉内容中与结束标记缩进量匹配的前导空白
  • 和允许结束标记缩进的<<-比:<<-只放宽结束标记的缩进要求,但不会处理内容的缩进;<<~则同时支持结束标记缩进,还会清理内容的前导空白

实际示例

你的代码里:

sentence = <<~ LOTSOFWORDS
this is an example of the thing initialising a variable, how else does this work?
LOTSOFWORDS

如果内容带缩进的场景下,效果更明显:

def show_info
  info = <<~INFO
    这是一段缩进的文本
    使用<<~后,前导缩进会被自动去除
  INFO
  puts info
end

show_info
# 输出结果:
# 这是一段缩进的文本
# 使用<<~后,前导缩进会被自动去除

名称提示

你搜不到是因为它的标准叫法是 squiggly heredoc(波浪 heredoc),或者直接称“带缩进去除的 heredoc”。它和 shovel 操作符(<<)完全是两回事:shovel 是用来给数组、字符串等对象追加内容的操作符,而 heredoc 是定义多行字符串的语法。

内容的提问来源于stack exchange,提问作者BasMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 03:36:07