6
在ruby 1.9中,關於在哪裏結束行的條件已經放寬,所以現在我們可以開始一段顯示方法調用的句點。如果我們將鏈接和非鏈接方法混淆在一起,並且想要顯示下一個非鏈接方法的起始位置,這很方便。沒有這個新功能,我們可以做的最好的可能就是使用縮進:評論限制
method1(args1).
method2(args2).
method3(args3)
method4(args4).
method5(args5).
method6(args6)
或插入一個空行。但是這樣做很不方便,因爲我們必須注意縮進,同時不要忘記在每個方法調用之後放置一段時間,而是放在鏈中的最後一個。正因爲如此,我創造了這麼多錯誤或者有額外的或缺失的時期。有了這個新功能,我們可以做得更好:
method1(args1)
.method2(args2)
.method3(args3)
method4(args4)
.method5(args5)
.method6(args6)
其中,期間視覺功能爲縮進的項目符號。
問題是,當您想在以句點開頭的行之前插入註釋時,它會返回錯誤。
method1(args1)
# method2 does blah blah
.method2(args2)
# method3 then does foo foo
.method3(args3)
method4(args4)
# method5 does blah blah
.method5(args5)
# method6 then does bar bar
.method6(args6)
# => error
或
method1(args1)
# method2 does blah blah
.method2(args2)
# method3 then does foo foo
.method3(args3)
method4(args4)
# method5 does blah blah
.method5(args5)
# method6 then does bar bar
.method6(args6)
# => error
看來,"#...."
不是簡單地脫落,而是以某種方式的代碼互動。發生什麼事?這裏有什麼限制?當這些時期結束時,這沒有發生。
method1(args1).
# method2 does blah blah
method2(args2).
# method3 then does foo foo
method3(args3)
method4(args4).
# method5 does blah blah
method5(args5).
# method6 then does bar bar
method6(args6)
# => no error
我往往有一個俏皮話鏈,每做一個特定的任務,是有意義的註釋行由行。 – sawa 2011-04-17 03:31:34
它仍然違反慣例。你不應該每條評論一行 - 代碼應該說明問題。如果它沒有一些內聯評論是有幫助的。特別是關於鏈接,你可以打破那些語句成的通話清單和任何含糊不清(如果需要)追加很短的行結束註釋。沒有人想讀長句評論,然後閱讀它所屬的單詞長代碼。我們懂了。 – coreyward 2011-04-17 04:16:42
這是相反的方式。單線程可能有一個塊,或者有一個複雜的正則表達式。評論可以是簡單的短語。此外,我經常測試鏈中的一個班輪幾個備選方案,並需要在測試註釋掉不替代 – sawa 2011-04-17 05:04:56