Вызов методов экземпляра из методов класса в ruby

Это правильный способ вызова метода Instance из метода класса? Здесь instance_var передается с объектом Name. Я хочу вызвать func1 из объекта instance_var, переданного методу класса.

Я написал это:

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

1 ответ

Решение

How do you call func2?

Your code has a small error. Вы написали Class вместо class, С Class you get a syntax error.

Этот код работает:

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

will create an empty variable @name, It will never get a value. To assign a value you need:

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

x = Name.new(:x)
Другие вопросы по тегам