如何在ruby中的多行调用链中添加注释?

时间:2016-02-01 06:36:07

标签: ruby syntax

这在红宝石中完全合法:

foo = {}
foo
  .key?('bar')

但这是语法错误

foo = {}
foo
  # Why on earth can't I put a comment here?
  .key?('bar')

如何记录该特定方法调用? (在这个人为的例子中,文档是愚蠢的,但在一个10方法的调用链记录每一个在一条线上是合理的)

3 个答案:

答案 0 :(得分:4)

<table>
  <tr><td>
    <table><tr><td>Row 1 Col 1a</td><td>Row 1 Col 1b</td></tr></table>
  </td><td>Row 1 Col 2</td><td>Row 1 Col 3</td></tr>
  <tr><td>Row 2 Col 1</td><td>Row 2 Col 2</td><td>Row 2 Col 3</td></tr>
  <tr><td>Row 3 Col 1</td><td>Row 3 Col 2</td><td>Row 3 Col 3</td></tr>
</table>

它不漂亮,但它有效。

foo = {}
puts foo
  . # comment
  key?('bar')

更漂亮,仍然有效。

答案 1 :(得分:4)

如果您确实拥有10方法的调用链,并且需要使用注释记录每个调用,那么您可能需要考虑您的应用程序设计是否合理。

在任何情况下,您都可以使用反斜杠创建如您所述的多行调用:

foo = {}

foo \
  # This will work!
  .key?('bar')
#=> false

答案 2 :(得分:3)

[这不能解决您的具体问题,但评论时间太长了]

我通常在同一行上写评论,就在我要解释的方法调用之后,例如:

10.times               # 0, 1, 2, ..., 8, 9
  .map { |i| i * 3 }   # multiply by 3
  .select(&:odd?)      # keep odd numbers
  .reduce(:+)          # calculate sum