pkg.A
到处都叫。我想知道我怎样才能避免这种情况?
另外,如何简化重复条件,如 pkg.A.B.nil?
及 pkg.A.C.nil?
?
谢谢
packages = result.packages.collect do |pkg|
{
:origin => pkg.A.nil? ? nil : {
:version => ("#{pkg.name}.#{pkg.A.B.version}.#{pkg.A.B.desc}" unless pkg.A.B.nil?),
:branch => (pkg.A.B.branch unless pkg.A.B.nil?),
:id => (pkg.A.B.id unless pkg.A.B.nil?),
:set => (pkg.A.C.set unless pkg.A.C.nil?),
:event => (pkg.A.C.event unless pkg.A.C.nil?)
}.compact
}
1条答案
按热度按时间laawzig21#
您可以使用返回的安全导航操作符
nil
被召唤时nil
.对于版本标识符,我将添加一个方法
pkg.A.B
.你也可以考虑拥有一个
origin_hash
方法论pkg.A
. 然后,整个方法可以简化为: