gpt4 book ai didi

ruby - 访问类主体中的方法

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

有人可以解释以下行为吗?

def a_method
"a_method() was called by #{self}"
end

class MyClass
puts a_method
def another_method
puts a_method
end
end

MyClass.new.another_method

它产生以下输出:

a_method() was called by MyClass
a_method() was called by #<MyClass:0x000000034962b0>

puts a_methodMyClass 主体中如何工作?如何在定义 Myclass 时访问 a_method

最佳答案

(最外层)Ruby 语句按照编写的顺序调用和执行。

MyClass中,有一个方法调用puts a_method,其中self是类MyClass。这将打印输出的第一行。然后,后面有一个方法调用another_method,它调用了puts a_method,其中selfMyClass的一个实例>。这将打印输出的第二行。

How could I access a_method while defining Myclass?

这似乎意味着您认为类定义在(第一次出现的)类主体关闭时完成。然而事实并非如此。第一次打开类(class)主体后会立即创建一个类(class)。因此,在类主体中,您可以调用类的方法。在类主体中定义方法不是创建类的一部分;该类已经存在,它正在修改该类。

关于ruby - 访问类主体中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35333257/

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