2012-10-06 121 views
23

在Ruby就是那兩個(代碼)之間的區別:之間的區別。和#

  • Class.method
  • Class#method
+0

在代碼中,第一個是方法調用,第二個是註釋。 –

回答

24

散列格式(Class#方法)不是有效的ruby,但在文檔中用於描述實例方法。

類方法通常使用雙冒號(Class ::方法)進行記錄。

你會看到在紅寶石文檔

點陣格式在代碼中使用實際上調用一個類的方法(Class.method)的時候,雖然我已經看到了一些人的兩個例子(如http://www.ruby-doc.org/core-1.9.3/String.html)(不幸的是)與文檔中的雙冒號或散列值交替使用。

22

這是一個命名約定。

  • 實例方法
  • 類方法使用點.method使用英鎊#method

參見:How to name RSpec describe blocks for methods

+0

基於那個超級簡潔的博客文章?不應該遵循文檔格式,即類方法的'Class :: method'? – Todd

+0

我與cdn在這一個。 Ruby文檔是一個規範的源文件,博客文章沒有權威性,'.method'很混亂,因爲所有方法都是這樣調用的。除此之外,類常量可以通過'::'訪問,所以它是有道理的。 –

2

Class#method無效代碼。它僅用於文檔。方法應該是一個實例方法。

Class.method或object.method是屬於該對象的實際方法。類也是一個對象。它是有效的代碼。

相關問題