1行の式でいくつかの自動有効化ハッシュを初期化したいと思います。これまでのところ、AutoHash
オブジェクトの追加メソッドにたどり着きました:
class AutoHash < Hash
...
def few(n=0)
Array.new(n) { AutoHash.new }
end
これにより、次のことが可能になります
a, b, c = AutoHash.new.few 3
ただし、新しい演算子を定義することで、次の文が可能になると思います:=
a := b := c = AutoHash.new
これを実装するのを手伝ってもらえますか?
superatorsを使用する必要がありますか?
require 'superators'
class AutoHash < Hash
...
superator ":=" do |operand|
if operand.kind_of? Hash
...
else
...
end
end
更新:これで、演算子をクラス外で定義する必要があることがわかりました。そのようなオブジェクト クローン オペレータを定義することは可能ですか?
Update2メソッドのより明確な定義、few
Joshuaのおかげ
参考文献