2011-07-27 44 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