2

これは、クラス メソッドからインスタンス メソッドを呼び出す正しい方法ですか? ここで、instance_var は Name オブジェクトとともに渡されます。クラス メソッドに渡された instance_var オブジェクトから func1 を呼び出したいと考えています。

私はこれを書きました:

Class Name
    def initialize
        @name
    end
    def func1(value)
        puts value
    end
    def self.func2(instance_var,val)
        instance_var.func1(val)
    end
end
4

1 に答える 1

3

どのように呼びfunc2ますか?

コードに小さなエラーがあります。あなたはClass代わりに書いたclassClass構文エラーが発生します。

このコードは機能します:

class Name
    def func1(value)
        puts value
    end
    def self.func2(instance_var,val)
        instance_var.func1(val)
    end
end

x = Name.new
Name.func2(x, 12)     #12

#or
Name.func2(Name.new, 12)  #12

君の

    def initialize
        @name
    end

空の変数を作成します@name。値を取得することはありません。必要な値を割り当てるには:

class Name
    def initialize (var)
        @name = var
    end
end

x = Name.new(:x)
于 2012-08-03T11:45:12.033 に答える