Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改Ruby类变量值_Ruby_Class Variables - Fatal编程技术网

如何更改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

我是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
我得到以下输出:

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