2015-02-23 38 views
-2

我需要对变量执行一个操作,但该方法在另一个类中。我期望输出为以下为100:对其他类的变量调用方法

Class a 
    def ask 
    var = 10 
    var.ans! 
    puts var 
    end 
end 

Class b 
    def ans! 
    self * 10 
    end 
end 

请帮助。

+1

'var'具有价值'100',这是一个'Fixnum',而不是' B'。我不能说我会改变,因为你的例子很不清楚;也许有一个更具体的例子,有意义的类? – Amadan 2015-02-23 16:58:40

+1

你的例子甚至不是有效的。 Ruby的'class'关键字是小写字母,而类名以大写字母开头...... – Stefan 2015-02-23 17:10:43

回答

0

不知道这是否是你所需要的,但这个工程:

class A 
    def ask 
    var = 10 
    var = B.new.ans!(var) 
    puts var 
    end 
end 

class B 
    def ans!(var) 
    var * 10 
    end 
end 

A.new.ask #=> 100 

class A 
    def ask 
    var = 10 
    var = B.new(var).ans! 
    puts var 
    end 
end 

class B 
    attr_accessor :var 

    def initialize(var) 
    @var = var 
    end 

    def ans! 
    self.var * 10 
    end 
end 

A.new.ask #=> 100 
相关问题