这可能是一个糟糕的标题。如果有人对如何描述这个问题有更好的了解,那么很高兴听到它。
如果我在Python中使用ElementTree构建XML文档,我可以按照
的方式做一些事情。tag = ET.SubElement(root, 'tag')
tag.set('foo', 'true')
if bar
tag.set('baz', 'false')
但是使用Ruby中的Builder,我可以看到如何设置标记属性的唯一方法是执行以下操作:
xml.tag :foo => 'true', :baz => 'false'
有没有办法让我在那之后分配baz
?或者我必须重写整个事情:
if bar
xml.tag :foo => 'true', :baz => 'false'
else
xml.tag :foo => 'true', :baz => 'true'
end
答案 0 :(得分:1)
当您不就地更新时,代码更清晰。为什么不呢?
xml.tag :foo => 'true', :baz => (bar ? 'true' : 'false')