gpt4 book ai didi

ruby-on-rails - ActiveSupport 中 mattr_accessor 和 cattr_accessor 的区别?

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:40 25 4
gpt4 key购买 nike

我无法从源代码中找出类和模块中分别提供的 cattr_*mattr_* 方法之间的区别。我读了这个问题:What is mattr_accessor in a Rails module?其中提供了有关这两种方法的一些详细信息,但没有突出显示差异。

所以我的问题是它们之间有什么区别,为什么我们需要两组方法,因为它们在源代码中实际上是相同的?另外,我们什么时候应该使用哪个?

最佳答案

Module 是类 Class 的父类(super class),因此如果可以想到一个合适的通用名称,则可以将定义访问器的方法放在 Module 并且它适用于模块和类。请注意以下工作:

class Bar
mattr_accessor :test
end

但是

module Foo
cattr_accessor :test
end

行不通。

在应该在类内部使用的方法上使用 c 前缀,在模块内部使用的方法上使用 m 前缀只会帮助您的代码更清晰一些.

关于ruby-on-rails - ActiveSupport 中 mattr_accessor 和 cattr_accessor 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2203800/

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