Ruby一次设置多个值
更聪明的方法是什么:Ruby一次设置多个值,ruby,Ruby,更聪明的方法是什么: @entity.description = @resource.description @entity.aliases = @resource.aliases @entity.image = @resource.thumbnail @entity.freebase = @resource.url @entity.same_as = @resource.webpages 谢谢。你可以这样写: {:description => :description=, :alias
@entity.description = @resource.description
@entity.aliases = @resource.aliases
@entity.image = @resource.thumbnail
@entity.freebase = @resource.url
@entity.same_as = @resource.webpages
谢谢。你可以这样写:
{:description => :description=, :aliases => :aliases=, :image => :thumbnail=,
:freebase => :url=, :same_as => :webpages=}.each do |from, to|
@entity.send(to, @resource.send(from))
end
但我怀疑这会大大提高代码的可读性。你最好现在就把它留下,因为我写得这么短会混淆代码,使其更难阅读。你可以这样写:
{:description => :description=, :aliases => :aliases=, :image => :thumbnail=,
:freebase => :url=, :same_as => :webpages=}.each do |from, to|
@entity.send(to, @resource.send(from))
end
但我怀疑这会大大提高代码的可读性。你最好把它留下,因为你现在有代码,写的很短,因为我混淆了代码,使它更难读。 如果你有两个类之间共享的多个字段,你可以考虑将它们打包成一个类,然后简单地分配(或克隆)它。那么您的代码将如下所示:
@entity.info = @resource.info
<>这当然需要完全控制类。 如果你有两个类之间共享的多个字段,你可以考虑将它们打包成一个类,并简单地分配(或克隆)它。那么您的代码将如下所示:
@entity.info = @resource.info
当然,这需要您完全控制这些类