1

我是 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 不起作用?我究竟做错了什么?

谢谢你。

4

2 回答 2

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

[注意:我冒昧地对您的代码进行了一点Rubyfing。]

于 2011-07-27T15:13:34.043 回答
-5

这是按预期工作的:

在此处输入图像描述

于 2011-07-27T14:56:22.620 回答