2010-09-23 50 views
-1
class Mycompute 

    def initialize(str) 
    @str=str 
    end 

    def values 
    @@[email protected] 
    end 

    def up 
    @@result.upcase 
    end 

end 
 
irb(main):012:0> Mycompute.new("Abc").values 

=> "Abc" 
irb(main):013:0> 

irb(main):014:0* Mycompute.new("Abc").up 
=> "ABC" 
irb(main):015:0> Mycompute.new("Abc").values.up 

NoMethodError: undefined method `up' for "Abc":String 
    from (irb):15 
    from :0 

我怎样才能让Mycompute.new("Abc").values.up工作?如何编写适当的方法?

+2

投票结束,在这里找不到问题。 – 2010-09-23 11:38:51

回答

0

values返回的对象需要有up

class Mycompute 

    def initialize(str) 
    @str=str 
    end 

    def values 
    @@[email protected] 

    def @@result.up 
     self.upcase 
    end 

    @@result 
    end 

    def up 
    @@result.upcase 
    end 

end 

这很好。

Mycompute.new("Abc").values #=> "Abc" 
Mycompute.new("Abc").up #=> "ABC" 
Mycompute.new("Abc").values.up #=> "ABC"