如何更改Ruby类变量值
我是Ruby新手,我想做的是如何更改Ruby类变量值,ruby,class-variables,Ruby,Class Variables,我是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 e
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
我得到以下输出:
3
2
为什么我的@SequenceNumber+=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。]也许您应该将这些内容全部输入出来,因为这很难阅读。
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