我有一个扩展哈希的类,我想跟踪哈希键何时被修改。
覆盖的正确语法是什么[key]=
语法方法来完成这个?我想插入我的代码,然后调用父方法。
这可以用 C 方法实现吗?我从文档中看到底层方法是
rb_hash_aset(VALUE hash, VALUE key, VALUE val)
它如何分配给括号语法?
方法签名是def []=(key, val)
, and super
调用父方法。这是一个完整的示例:
class MyHash < Hash
def []=(key,val)
printf("key: %s, val: %s\n", key, val)
super(key,val)
end
end
x = MyHash.new
x['a'] = 'hello'
x['b'] = 'world'
p x
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)