gpt4 book ai didi

ruby - 是否可以在 `class_eval` 中定义类方法?

转载 作者:数据小太阳 更新时间:2023-10-29 07:31:51 24 4
gpt4 key购买 nike

我知道可以使用 class_eval 定义实例方法。是否可以在 class_eval 的上下文中定义类方法?

最佳答案

是的,这是可能的:

class Foo
end

Foo.class_eval do
def self.bar
puts "I'm a class method defined using class_eval and self"
end

def baz
puts "I'm an instance method defined using class_eval without self"
end
end

Foo.bar # => "I'm a class method defined using class_eval and self"

foo = Foo.new
foo.baz # => "I'm an instance method defined using class_eval without self"

据我所知,这是因为在 class_eval 中,self 是 Foo 类,而执行 def Foo.bar 会创建一个类方法。

关于ruby - 是否可以在 `class_eval` 中定义类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30994071/

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