gpt4 book ai didi

ruby - 你什么时候使用 attr_writer?

转载 作者:行者123 更新时间:2023-12-05 05:19:44 24 4
gpt4 key购买 nike

我可以想象,当您希望某个属性只可读,或可写和可读时,而不是当您希望某个属性可写而不可读时。

在某些情况下,您可能想要读取某些属性但无法更改它们。例如,如果您有一个 Animal 类并想用名称、年龄和颜色对其进行初始化,您可以编写

attr_accessor :age, :color

然后为名字有

attr_reader :name

因为名字不会改变。猫可以变老或变色,但名称(为了这个问题)一旦分配就不应更改。

另一方面,我无法合理化您需要 attr_writer(相对于 attr_accessorattr_reader).在什么情况下你会想写一些东西,但不想读它?什么类型的场景或情况需要 attr_writer

如果您能想到其他编程语言的场景,那是受欢迎的,但我的面向对象知识的直接范围是在 Ruby 中。

最佳答案

如果您想要一个普通的编写器和一个自定义的阅读器怎么办?如果 ivar 尚未设置,在调用读取器时通常希望记住默认值。

class Oof
attr_writer :rab

def rab
@rab ||= "rab, of course!"
end
end

oof = Oof.new
oof.rab # => "rab, of course!"
oof.rab = "zab"
oof.rab # => "zab"

关于ruby - 你什么时候使用 attr_writer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45593532/

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