之间的区别。和#

时间:2012-10-06 21:51:31

标签: ruby rspec

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

  • Class.method
  • Class#method

3 个答案:

答案 0 :(得分:29)

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

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

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

在实际调用类方法(Class.method)时,代码中使用了点格式,虽然我已经看到有些人(不幸的是)可以使用双冒号或散列来交替使用它文档。

答案 1 :(得分:27)

这是一个命名惯例。

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

请参阅:How to name RSpec describe blocks for methods

答案 2 :(得分:3)

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

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