2012-10-06 316 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是属于该对象的实际方法。类也是一个对象。它是有效的代码。