2016-11-07 9 views
-1

現在、私はThe Ruby Programming Languageを読んでおり、それは多くの場所でselfの言及をしており、それが正確な使用であることを理解することはできません。その動作はC++のポインタthisと似ていますが、その2つの違いは何ですか?(私はポインタ逆参照やC++特有の事柄について一般的に質問していません)そしていつ私たちはルビコードでself.somethingを使用しますか?ルビーの自己参照とは何ですか?

+1

'self'は現在のオブジェクトを評価します。好奇心が強いときはいつでも 'p self'を試してみてください。 – steenslag

答えて

3

selfは、現在のコードがスコープ内にあるオブジェクトを指す変数です。そのオブジェクトに対してクラスメソッドを呼び出すときは、self.somethingを使用します。あなたは次のメソッドを持っていた場合例えば
、:

class Foo 
    def self.bar 
     puts "Class method!" 
    end 
end 

あなたはFoo.barを呼び出すことによってbarメソッドを呼び出します。

+0

C++の静的メソッドに似ていますか?クラスのすべてのインスタンスは、メソッドの同じコピーを持っていますか? – InQusitive

+0

インスタンスにはインスタンスメソッドが呼び出されますが、この例はクラスメソッドです –