gpt4 book ai didi

ruby-on-rails - 关于 attr_accessor 和 def initialize

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

我想使用 attr_accessor 将学校名称添加到数组。

我的问题是 'def initialize()' 在这种情况下做了什么

这样我就可以通过使用来存储数据

v1.school_name[0] = "我的学校名称"

如果我省略了 initialize() 函数,我会得到错误

class StoreData

attr_accessor :school_name
def initialize
@school_name = []
end
end


v1 = Store_data.new
v1.school_name[0] = "myschoolname"
print v1.school_name[0]
v1.school_name[1] = "myschoolnamehighschool"
print v1.school_name

最佳答案

在这种情况下,您使用空数组初始化 @school_name。如果您不这样做,它不会自动创建它,但它可以。该模式称为惰性初始化:

class StoreData
def school_name
@school_name ||= [ ]
end
end

s = StoreData.new
s.school_name << "Name 1"
s.school_name << "Name 2"
s.school_name
#=> [ "Name 1", "Name 2" ]

您不能将某些内容分配给 nil 值,这是默认情况下实例变量的值。

如有必要,这会使用 ||= 运算符创建一个数组。

关于ruby-on-rails - 关于 attr_accessor 和 def initialize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37171235/

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