34

Rubyでは、これら2つの違いは何ですか(コード内):

  • Class.method
  • Class#method
4

3 に答える 3

40

これは命名規則です。

  • #methodインスタンスメソッドにポンドを使用する
  • .methodクラスメソッドにドットを使用する

参照:メソッドのRSpec記述ブロックに名前を付ける方法

于 2012-10-06T21:56:12.143 に答える
32

ハッシュ形式(Class#method)は有効なルビーではありませんが、インスタンスメソッドを説明するためにドキュメントで使用されています。

クラスメソッドは通常、ダブルコロン(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 に答える