gpt4 book ai didi

ruby - __callee__ 和 __method__ 之间的区别

转载 作者:数据小太阳 更新时间:2023-10-29 06:40:18 25 4
gpt4 key购买 nike

在 Ruby 中,可以使用任何一种

__callee__ 

__method__ 

找到当前正在执行的方法的名称。

两者有什么区别?

最佳答案

__method__ 静态查找名称,它指的是最近的词法封闭方法定义的名称。 __callee__ 动态查找名称,它指的是调用方法的名称。 两者都不一定需要对应于最初发送的消息:

class << (foo = Object.new)
def bar(*) return __method__, __callee__ end
alias_method :baz, :bar
alias_method :method_missing, :baz
end

foo.bar # => [:bar, :bar]
foo.baz # => [:bar, :baz]
foo.qux # => [:bar, :method_missing]

关于ruby - __callee__ 和 __method__ 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35391160/

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