gpt4 book ai didi

ruby-on-rails - 从实例方法访问类方法

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

假设我有以下代码

class Monster
def self.yell
'i am yelling!'
end

def shout_something
Monster.yell
end
end

我的 yell 方法是一个类方法,而 shout_something 是一个调用 yell 的实例方法。

这样做有什么本质上的错误吗?例如,从实例方法调用类方法不好吗?我问是因为感觉不对,但也许只是因为我是 ruby 的新手。

旁注,我认为用 self.yell 代替 Monster.yell 会更有意义,但它不起作用。

最佳答案

从实例方法调用类方法并没有什么特别的错误。根据您的意图以及您希望人们如何对您的 Monster 进行子类化,您可能需要使用它:

def shout_something
self.class.yell
end

这样子类就可以提供它们的yell类方法。

关于ruby-on-rails - 从实例方法访问类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6546318/

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