gpt4 book ai didi

ruby - 数组的 attr_writer

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

我对 Ruby 的 attr_writer 感到困惑。我试图在数组中添加一个值,但遇到以下错误:

Line 13: undefined method `test' for # (NoMethodError)

class Pet
attr_writer :test
def initialize()
@test = []
end
end

pet = Pet.new()
pet.test << "Test was a pet"

为什么?据我了解, attr_writer 相当于一个setter方法。请解释。谢谢。

最佳答案

是的,attr_writer 定义了一个 setter 方法。但是您的代码尝试使用 setter/getter

pet.test << "Test was a pet"

这是 ruby​​ 的看法(或多或少)

t = pet.test
t << "Test was a pet"

如果你真的设置了一个数组,它就会起作用

pet.test = ['Test was a pet']

附带说明:我个人认为只写属性是一种代码味道。这里可能有问题。在我的职业生涯中,我从未使用过只写属性。

关于ruby - 数组的 attr_writer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14496283/

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