這是完全合法的紅寶石:如何在ruby的多線調用鏈中添加評論?
foo = {}
foo
.key?('bar')
但是,這是一個語法錯誤
foo = {}
foo
# Why on earth can't I put a comment here?
.key?('bar')
我如何可以記錄特定的方法調用? (在這種人爲的例子的文檔有啞,但在10方法調用鏈上的線記錄每一個都是合理的)
這是完全合法的紅寶石:如何在ruby的多線調用鏈中添加評論?
foo = {}
foo
.key?('bar')
但是,這是一個語法錯誤
foo = {}
foo
# Why on earth can't I put a comment here?
.key?('bar')
我如何可以記錄特定的方法調用? (在這種人爲的例子的文檔有啞,但在10方法調用鏈上的線記錄每一個都是合理的)
foo = {}
puts foo
. # comment
key?('bar')
這不是漂亮,但它的工作原理。
foo = {}
puts foo.
# comment
key?('bar')
更漂亮,仍然有效。
第二種風格不符合我所遵循的風格指南:(https://github.com/bbatsov/ruby-style-guide –
@PaulTarjan風格指南並沒有這樣說,它只是說是一致的 – sawa
如果確實有10個方法的調用鏈,並且需要用註釋記錄每個調用,那麼您可能需要考慮您的應用程序設計是否合理。
在任何情況下,你可以用一個反斜槓來創建多線電話像你描述:
foo = {}
foo \
# This will work!
.key?('bar')
#=> false
[這不解決您的具體問題,但它太長了評論]
我平時寫在同一行的意見,只是在方法調用我想解釋,如後:
10.times # 0, 1, 2, ..., 8, 9
.map { |i| i * 3 } # multiply by 3
.select(&:odd?) # keep odd numbers
.reduce(:+) # calculate sum
或者你可以使用lambdas在代碼中嵌入註釋:'multiply_by_three = lambda {| i | i * 3}'和'.map(&multiply_by_three)'例如。 –
我曾經做了一個功能請求,讓這一點,但Ruby的核心成員似乎是負面的在(https://bugs.ruby-lang.org/issues/7639)。 – sawa