在初始化类中的变量(实例变量等)时遇到了一些麻烦,我想知道是否有人可以为我澄清正确的语法。
示例代码:
Class Pets
attr_accessor :name
def initialize(name)
@name=name
end
def name=(name)
@name = name
#I believe this is where I change @name instance variable
end
#in this space I could create more <methods> for Class.new.<method>
end
我的问题是我是否需要attr_accessor
以及def initialize
和def name=
?
此外,如果我有多个 attr_accessors 是否需要将它们作为参数添加到def initialize
,例如:
Class Pets
attr_accessor :name :age :color
def initialize(name, age, color)
@name = name
@age = age
@color = color
#and if this is the case do I need methods for each (name= age= color= etc.)
end
最后一件事:如果有人可以确认或否认我对类中方法name=
age=
和color=
类型的思考过程。我是否正确地认为method=
有必要更改实例变量?我有点不确定method=
它的用途以及为什么我不能在初始化中更改实例变量。