在此处使用的括号运算符作为参数

  • 本文关键字:运算符 参数 ruby heredoc
  • 更新时间 :
  • 英文 :


我看到了一个用作参数的文档,里面有方形托架操作员。看起来像:

method(<<EOF)[0][0]
lots of text
EOF

方托机操作员的含义是什么?有人知道什么样的成语吗?

问题在于,赫尔多克(Heredocs(的结构有些混乱,可以打破代码的正常流动。Heredoc的含量在<<EOF之后立即开始在线上开始,打开Heredoc并在关闭Heredoc的EOF结束,但包含Heredoc的表达式正常从左到右继续。

的结构
method(<<EOF)[0][0]
lots of text
EOF

实际上更像是这样:

      /<<EOF       
      |lots of text|
      |lots of text|
method|lots of text|[0][0]
      |lots of text|
      |lots of text|
      EOF         /

斜线和垂直条是绘制非常高的ASCII艺术括号的粗略尝试;或者,如果您有适当的Unicode字体:

      ⎛<<EOF       ⎞
      ⎜lots of text⎟
      ⎜lots of text⎟
method⎜lots of text⎟[0][0]
      ⎜lots of text⎟
      ⎜lots of text⎟
      ⎝EOF         ⎠

您可以将Heredocs视为一个有趣的双引号(或%Q(...)(如果您愿意的话((,而不是像您的其余代码一样垂直而不是水平地进行。

(IMO(写作更加一致:

method(<<EOF
lots of text
EOF)[0][0]

,但赫里多克斯的历史悠久(一直回到/bin/sh(。

回到真正的问题:该表达式的[0][0]部分根本不在Heredoc内部,仅应用于method("lots of textnlots of textn...")返回的内容。

相关内容

  • 没有找到相关文章

最新更新