如何将一个类方法中的变量设置为等于另一个类的实例变量的值?

时间:2014-05-18 17:47:04

标签: ruby

我想使用实例变量的值来设置另一个类中的实例变量的值。

如果类foo有一个变量move

我创建了两个foo实例,每个实例都有不同的值(可能是相同的值)

我有一个类栏我希望它的初始化方法有一个参数x和y参数x将是一个整数。参数y将是foo实例的实例名称。

类栏的initialize方法将局部变量移动到初始化参数中传递的实例的移动值。

从提供的答案中提取的一个例子

class Bar
  def initialize(x, y)

    @move = y.getmove
    end
  attr_reader :move
end

class foo 
  def initialize (move)
    @move = move
  end

  def getmove
    @move
  end

car = foo.new(3)
train = foo.new(6)

audi = Bar.new(2, car) # instance audi should now have a move variable set to 3
thomas = bar.new(6, train) # instance thomas should now have a move variable set to 6

请注意我不想通过继承实现这一点,因为类栏需要从另一个类继承。

这可能吗?怎么样?

1 个答案:

答案 0 :(得分:1)

这就是你所描述的:

class Bar
  def initialize(x, y)
    @move = y.move
  end
  attr_reader :move
end

Bar.new(2, foo)