评论由:jafingerhut 发表
Edward,您提供的补丁用 m1 替换了表达式(或 m1 {})。它是在 2008 年 10 月 16 日的提交中从 m1 更改为(或 m1 {}),描述文为“在 merge、merge-with 中提高了 nil 的处理”,因此我非常确信最好保留为(或 m1 {})。我相信意图是允许 merge-with 中的大多数 map 参数为 nil,同时一切仍然可以正常工作。
避免一个 merge 调用的剩余补丁对我来说似乎是合理的。
如果它不以第一个 map 而是以列表中的第一个非 nil 项为参数调用,并随后调用该列表中的其余部分,那么您的更改将更好地保留第一个非 nil map 上的任何元数据。