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

您的代码有一个小错误。你改写Classclass。随着Class你得到一个语法错误。

此代码有效:

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 回答