2011-07-27 47 views
1

我是新来的Ruby和我什么我想要做的是以下如何改变一个Ruby类变量值

class WS< ActiveRecord::Base 
    @@SequenceNumber = 0 

    def self.oper1 
    @@SequenceNumber = 2 
    end 

    def self.oper2 
    @@SequenceNumber += 1 
    puts @@SequenceNumber.to_s 
    end 

    def self.oper3 
    puts @@SequenceNumber.to_s 
    end 
end 

如果我做这样的事情:

WS.oper1 
WS.oper2 
WS.oper3 

我得到的以下输出:

3 
2 

为什么我的@@ SequenceNumber + = 1工作不正常?我究竟做错了什么?

谢谢。

回答

1

工作得很好:

class WS 
    @@sequence_number = 0 

    def self.oper1 
    @@sequence_number = 2 
    end 

    def self.oper2 
    puts @@sequence_number += 1 
    end 

    def self.oper3 
    puts @@sequence_number 
    end 
end 

WS.oper3 
# 0 

WS.oper1 
WS.oper2 
# 3 

WS.oper3 
# 3 

[注:我把Rubyfying你的代码一点点的自由]

-4

这是工作的预期:

enter image description here

+1

也许你应该全部输入,因为很难阅读。 – Jamal