2016-06-08 111 views

回答

1

這是一種Ruby風格的選擇;你也可以做。大多數人,包括我在內,大多數時候都省略了括號。作爲一種語言,Ruby非常努力地保持自己的方式,給你幾種實現同樣的事情的方法,無論哪種方式在給定時刻都適合。

你可以有選擇地使用它們的清晰度,或最常用於長的代碼行,其中解釋可能絆倒什麼參數與下一條語句等

你的最後一個例子是做工精細沒有括號。

2

validatesattr_reader,Sinatra的get,RSpec的describe和類似的函數調用可以看作是聲明。在這種情況下,通常會放棄括號。爲了清楚起見,「真正的」函數調用通常用圓括號編寫。

在更流行的Ruby風格指南中的一個的words

  • 省略括號周圍參數對於那些內部DSL(例如耙,導軌,RSpec的)的一部分的方法中,具有方法「關鍵字「狀態(例如attr_reader,puts)和屬性訪問方法。使用括號周圍所有其他方法調用

的論點[...]

  • 省略外括號和括號無論對於是內部DSL的部分方法。
0

在大多數情況下,括號與無括號是一個慣例問題。捨棄括號是完全正確的。

通常當在Ruby中使用DSL(例如validates)時,您會省略括號。在調用常規實例或類方法時,我經常看到有人包含它們。

在更復雜的示例中,爲了清晰起見,您需要包含括號,並確保您掌握如何執行。

相關問題