当多行注释以<<开头时,它意味着什么

时间:2016-09-20 07:48:07

标签: ruby multilinestring

在Ruby中,当多行注释以<<开头时,它是什么意思?

1 个答案:

答案 0 :(得分:0)

它定义了一种可以输入多行代码的方法,这些代码将被Ruby解释器忽略。这个多行文字特征称为“Here Documents”(缩写为“heredoc”)。在这里讨论......

https://ruby-doc.org/core-2.2.0/doc/syntax/literals_rdoc.html#label-Here+Documents

您在<<之后放置了自己的“关键字”,然后在最后一行之后使用相同的关键字,以便Ruby知道多行分配停止的位置。

x = 1

<<-endofstuff
x = 2
x += 1
endofstuff

p x
=> 1

你可以看到&lt;&lt;&lt;&lt;&lt;&lt;&lt;并忽略关键字。

但是,这不是通常意义上的评论,而是占用了一些内存分配。很有可能,你看到它出现的地方,实际上是用来创建一个分配给变量或传递给方法的文字。

建议不要使用'heredoc'进行评论,这不是该功能的原始意图。如果用于评论,那么审查代码的人可能会感到困惑,特别是长代码块。

使用(代替)=begin=end约定,或者为了清晰起见,使用每个注释行前面的显式#