我怎样才能动态设置而不必全部编写相同的代码。
现在代码如下所示:
def initialize(keywords: keywords, title: title, url: url, adsetting: adsetting)
self.keywords = keywords
self.title = title
self.url = url
self.adsetting = adsetting
end
如果列表变得更长,这很快就会失控。
使用 ruby 1.9,我只需将哈希传递给该方法。像这样:
def initialize(args)
args.each do |k,v|
instance_variable_set("@#{k}", v) unless v.nil?
end
end
但我宁愿使用 Ruby 2.0 关键字参数。可以实现类似的东西吗?
def initialize(keywords: keywords, title: title, url: url, adsetting: adsetting)
args.each do |k,v|
instance_variable_set("@#{k}", v) unless v.nil?
end
end