2016-02-01 33 views
0

這是完全合法的紅寶石:如何在ruby的多線調用鏈中添加評論?

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

但是,這是一個語法錯誤

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

我如何可以記錄特定的方法調用? (在這種人爲的例子的文檔有啞,但在10方法調用鏈上的線記錄每一個都是合理的)

+2

我曾經做了一個功能請求,讓這一點,但Ruby的核心成員似乎是負面的在(https://bugs.ruby-lang.org/issues/7639)。 – sawa

回答

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

這不是漂亮,但它的工作原理。

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

更漂亮,仍然有效。

+0

第二種風格不符合我所遵循的風格指南:(https://github.com/bbatsov/ruby-style-guide –

+1

@PaulTarjan風格指南並沒有這樣說,它只是說是一致的 – sawa

4

如果確實有10個方法的調用鏈,並且需要用註釋記錄每個調用,那麼您可能需要考慮您的應用程序設計是否合理。

在任何情況下,你可以用一個反斜槓來創建多線電話像你描述:

foo = {} 

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

[這不解決您的具體問題,但它太長了評論]

我平時寫在同一行的意見,只是在方法調用我想解釋,如後:

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

或者你可以使用lambdas在代碼中嵌入註釋:'multiply_by_three = lambda {| i | i * 3}'和'.map(&multiply_by_three)'例如。 –

相關問題