gpt4 book ai didi

Ruby:模块静态方法的别名_方法

转载 作者:行者123 更新时间:2023-12-05 05:20:29 26 4
gpt4 key购买 nike

给定这个模块

module Test
def self.foo(v)
puts "Test.foo with #{v}"
end
end

下面的不行

module Test  
alias_method :bar, :foo
# ...
end

虽然它适用于实例方法。我收到以下错误

NameError: undefined method `foo' for module `Test'

我的目标是按如下方式覆盖 self.foo

def self.foo(v)
self.bar(v + " monkey patched")
end

有没有办法给静态方法起别名?

最佳答案

Test.singleton_class.send(:alias_method, :bar, :foo)
Test.bar("cat")
#=> "Test Foo with cat"

关于Ruby:模块静态方法的别名_方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44577888/

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