34

在 Ruby 中,这两者有什么区别(在代码中):

  • Class.method
  • Class#method
4

3 回答 3

40

这是一个命名约定。

  • 使用磅#method作为实例方法
  • .method对类方法使用点

请参阅:如何命名 RSpec 描述方法的块

于 2012-10-06T21:56:12.143 回答
32

哈希格式(Class#method)不是有效的 ruby​​,但在文档中用于描述实例方法。

类方法通常使用双冒号(Class::method)记录。

您将在 ruby​​ 文档中看到这两个示例(例如http://www.ruby-doc.org/core-1.9.3/String.html

点格式在实际调用类方法(Class.method)时在代码中使用,尽管我看到有些人(不幸地)在文档中将它与双冒号或哈希互换使用。

于 2012-10-06T22:01:30.627 回答
4

Class#method不是有效代码。它仅在文档中使用。方法应该是一个实例方法。

Class.method或 object.method 是属于该对象的实际方法。类也是一个对象。这是有效的代码。

于 2012-10-06T21:57:45.100 回答