def create(option={}) Account.create({:name =>”test”,:budget => 44
}.merge(options))
end

以下是merge的源代码

# File lib/set.rb, line 253
def merge(enum)
if enum.is_a?(Set)
@hash.update(enum.instance_eval { @hash })
else
enum.is_a?(Enumerable) or raise ArgumentError, “value must be enumerable”
enum.each { |o| add(o) }
end

self
end

我对这的理解:merge是用来更新一数组的,但是create({})相当创建了新的数组,merge正好更新新的数组

转载请注明:韦旭红的点点滴滴 » 函数分析之merge