Ruby は初めてなので、ここで用語が間違っていたら申し訳ありません。
ハッシュのサブクラスを作成しようとしていますが、初期化に問題があります。既存のハッシュといくつかの追加パラメーターで初期化できるようにしたいです。
x = NewHash[{:a => b}, extra_param]
静的 Hash [] 演算子をオーバーライドして、それを実行しようとしました。
class NewHash < Hash
def self.[](hash_values, backend = nil)
@backend = backend
super(hash_values)
end
end
[] 演算子は静的であり、非静的メンバー変数にアクセスできないため、これは機能しません。つまり@backend
、失われます。
何か私にできることはありますか?別の方法として を使用するnew
こともできますが、それでは初期ハッシュを受け入れる良い方法が得られません。