gpt4 book ai didi

Ruby 访问对象的 'key'?

转载 作者:太空宇宙 更新时间:2023-11-03 17:29:48 24 4
gpt4 key购买 nike

如果我有一个类,有没有办法捕捉到按键访问事件?

obj = Example.new
obj['key'] # is there any way to manually handle this?

当我使用 method_missing 时, 我只得到 '[]'作为名称,但我没有得到 'key'关键词。我也试过继承HashExample < Hash但是obj['key']会简单地解析为 nil .

最佳答案

其实很简单:

class Example
def [](key)
p key
end

def []=(key, value)
p [ key, value ]
end
end

您可以对 method_missing 执行相同的操作,但如果您打算一致地捕获这些,那么最好定义一个方法。

请注意,您确实会得到其他参数,但前提是您要求它们:

def method_missing(name, *args)
p [name, args]
end

请注意 obj['key'] 显示为 [:[], ['key']]

关于Ruby 访问对象的 'key'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45153421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com