[英]Use keyword arguments vs hash arguments in Ruby class constructor?
我是 Ruby 的新手,正在学习如何使用 Ruby 做正确的 OOP,我有一个问题,关于哪个是最惯用的方式来执行 ZABB1DZ2 构造函数。
我见过很多使用 hash 参数构造 object 的示例:
class Person
def initialize(params)
@name = params[:name]
@age = params[:age]
end
end
person = Person.new(name:"Pepsi", age:42)
但是,我还看到了另一种干净有效的方法:
class Person
def initialize(age:, name:)
@name = name
@age = age
end
end
person = Person.new(name:"Pepsi", age:42)
Ruby 更推荐哪种方式,为什么? 提前谢谢了!
它们都是有效的。 关键字 arguments 出现在 Ruby 2.0 中,因此一些较旧的代码库使用第一种方法( (params)
),特别是在保持与 Ruby 1.8 和 1 的兼容性时。
关键字形式有以下好处:
hash 表格具有以下优点:
class
等保留关键字作为键编写新代码时,选择最吸引人的形式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.