gpt4 book ai didi

ruby - 为什么我们需要 attr_accessor?

转载 作者:太空宇宙 更新时间:2023-11-03 17:10:03 26 4
gpt4 key购买 nike

我不明白为什么我们需要在类中声明 attr_reader 和 attr_writer,或 attr_accessor。我都读了 thisthis帖子,但这些帖子主要解释它们是如何工作的,而不是它们为什么在那里。

如果是

class Person
attr_accessor :age
end

bob = Person.new
bob.age = 99
bob.age

必须告诉 Ruby 写入和读取年龄,同时不能自动写入和读取类外的实例变量,这似乎有点多余。为什么我们需要在Class中设置reader和writer而不是下面的代码省几行?

class Person
end

bob = Person.new
bob.age = 99
bob.age

最佳答案

OpenStruct 的行为类似于 OP 的第二个片段:

require 'ostruct'

bob = OpenStruct.new
bob.age = 99
p bob.age # => 99

所以有一个选择。

关于ruby - 为什么我们需要 attr_accessor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34621353/

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