重构merge函数