Вызов методов экземпляра из методов класса в 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)