gpt4 book ai didi

ruby-on-rails - Ruby中类定义中的方法类是什么意思?

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

我熟悉类定义中的函数定义和变量声明:

public class MyClass {
public int myvar;
public void doSomething() {

}
}

但是当在类定义中实际调用方法时,在 Ruby 中“意味着”什么?这种情况在 Rails 中经常发生,例如:

class User < ActiveRecord::Base
has_many :posts
end

这到底是做什么的(在比“它向类添加一些方法”更低的层次上)?我将如何实现这样的功能(例如,混合一些其他方法的功能)?

最佳答案

在类的定义过程中,接收者是类对象,所以它实际上与更熟悉的 是一回事。 method 调用类方法的技术。

>> class A
>> def self.hello
>> puts 'world'
>> end
>> hello
>> end
world
=> nil
>> A.hello
world
=> nil
>> class B < A
>> hello
>> end
world
=> nil

因此,为了进一步类比 ClassName.new,您可以通过这种方式调用任何类方法。让我们以 new 为例:

>> class C
>> def happy
>> puts 'new year'
>> end
>> new
>> end.happy
new year
=> nil

顺便说一句,不要对这个方法是在父类(super class)中定义的事实感到困惑。 问:派生类和父类(super class)实例有什么区别?说 ActiveRecord::Base答: 没什么!只有一个类实例。

关于ruby-on-rails - Ruby中类定义中的方法类是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4612045/

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