0

私は ruby​​ の初心者で、文書化されていない古いコードをあちこちで保守するよう求められているだけです。ハッシュクラス変数を配置するルビーの基本クラスがあります。

@@projects = Hash.new

そして、派生クラスをメソッド (パラメーターを渡す) を介して追加したいと考えています。問題は、各派生クラスがハッシュの単一の「静的」バージョンにアクセスするのではなく、独自のハッシュのコピーを持っているように見えることです。

誰か助けてくれませんか?

class Base
   @@projects = Hash.new
   def AddSomething key, value
       @@projects[key] = value
   end
end

class Derived < Base
   def initialize
      ...
      AddSomething key, value
      ...
   end
end

したがって、上記のコード サンプルでは、​​AddSomething 関数で @@projects に値を追加するたびに、ハッシュのサイズ/長さは常に 1 であり、決して大きくなりません。それは、私が望むものではないインスタンス変数であるかのように機能します。

何か案は?私はここで困惑しています。

4

2 に答える 2

0

Derived#initialize引数を取らないようです。keyとpass はどこvalueからAddSomething来たのですか? それらが一定である場合、同じものをハッシュに@@projects追加し続けるため、もちろん長さは1のままです。keyvalue

于 2013-05-04T10:45:55.043 に答える