新手问题 赋值问题

ask_acct · 2014年05月28日 · 最后由 ask_acct 回复于 2014年05月30日 · 1594 次阅读

irb 内执行

doc.elements.each("library/section") { |e| puts e.attributes["name"] } 

结果为 Ruby

但是

subWorkFlowPath = doc.elements.each("library/section") { |e| e.attributes["name"] } 
puts subWorkFlowPath 

结果为大部分的原始 XML 内容

The Ruby Way Hal Fulton

请问赋值后为什么输出就会改变?

谢谢

两个代码都不一样

#1 楼 @chenge 贴错了,已经修改

ruby所有的方法都有返回值,Array#each返回数组本身,即puts subWorkFlowPathputs doc.elements是一样的

赋值后应该是这个内容:doc.elements。显然不一样。

你的需求应该subWorkFlowPath = doc.elements.map("library/section") { |e| e.attributes["name"] }

#5 楼 @piecehealth 明白了,感谢回复,谢谢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号