【发布时间】:2018-01-31 05:42:45
【问题描述】:
如果我在.tap 上下文中修改数组,将返回修改后的版本:
states = [:a, :b].tap do |sts|
sts << :c
end
puts states # [:a, :b, :c]
但如果我用|= 修改它,它会返回相同的对象:
states = [:a, :b].tap do |sts|
[[:a, :c], [:b, :d]].each do |type|
sts |= type
end
puts sts.inspect # [:a, :b, :c, :d]
end
puts states.inspect # [:a, :b]
能给我指出正确的方向吗?
【问题讨论】:
标签: arrays ruby reference functional-programming iterator