我有一个扩展Hash的类,我想跟踪修改哈希键的时间.
什么是覆盖[key]=语法方法来实现此目的的正确语法?我想插入我的代码,然后调用父方法.
这可能与C方法有关吗?我从文档中看到底层方法是
rb_hash_aset(VALUE hash, VALUE key, VALUE val)
Run Code Online (Sandbox Code Playgroud)
如何将其分配给括号语法?
小智 6
方法签名是def []=(key, val),并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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4587 次 |
| 最近记录: |