在 Go 中測試映射等效性 在表驅動測試中,測試映射等效性的挑戰出現了。手動檢查長度和鍵值對變得乏味,尤其是在針對不同的地圖類型重複檢查時。 慣用解決方案 慣用解決方案利用 Go 標準庫的 Reflect 套件。 Reflect.DeepEqual 函數接受兩個interface{} 參數,並透過以下方式檢查是否相等: 比較它們的nil 值 比較它們的長度(對於映射等資料結構) 遞歸地檢查其組成元素(中的鍵值對)的相等性地圖) 範例 附加註解 reflect.DeepEqual適用於任何有效的地圖類型,使其成為多功能的解決方案。 由於它接受 interface{} 參數,因此確保傳遞的值是真正的映射至關重要。 函數的遞歸性質確保即使是巢狀的資料結構也會徹底比較是否相等。