在初始化具有哈希类型结构的方法时,我对何时/为什么或者是否只是偏好问题感到有些困惑。
class Person1
attr_reader :name, :age
def initialize(params)
@name = params[:name]
@age = params[:age]
end
end
me = Person1.new(name: 'John Doe', age: 27)
puts me.name
puts me.age
#----------------------------------------------
class Person2
attr_reader :name, :age
def initialize(name, age)
@name = name
@age = age
end
end
me = Person2.new('John Doe', 27)
puts me.name
puts me.age
#----------------------------------------------
class Person3
attr_reader :person
def initialize(name, age)
@person = { name: name,
age: age }
end
end
me = Person3.new('John Doe', 27)
puts me.person[:name]
puts me.person[:age]
如果这是一个偏好问题,我喜欢只传递哈希,但如果您需要不同的 attr 读取器,哈希本身内的写入器,我可以看到这是一个问题。有经验法则吗?我看到很多使用 params 的 rails 文章。