在Golang 中測試映射的等效性
在編寫涉及映射的表驅動測試時,確定它們的等效性可能具有挑戰性。一種方法是手動檢查長度和各個鍵值對是否相等,但這對於不同的地圖類型來說會變得重複。
慣用方法
Go 函式庫提供內建解決方案:reflect.DeepEqual。函數接受兩個 interface{} 參數並遞歸地比較它們的值。對於映射,它使用以下步驟來比較長度、鍵和值:
用法範例
要比較兩個映射m1 和m2,請使用以下程式碼:
import "reflect" eq := reflect.DeepEqual(m1, m2) if eq { fmt.Println("They're equal.") } else { fmt.Println("They're unequal.") }
此解不需要自訂比較邏輯,並且適用於各種地圖類型。但請注意,如果傳遞錯誤,它也會比較非映射值。
以上是如何在 Golang 中測試地圖的等價性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!