首頁 >後端開發 >Golang >如何在 Golang 中測試地圖的等價性?

如何在 Golang 中測試地圖的等價性?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-16 22:26:03584瀏覽

How to Test Equivalence of Maps in Golang?

在Golang 中測試映射的等效性

在編寫涉及映射的表驅動測試時,確定它們的等效性可能具有挑戰性。一種方法是手動檢查長度和各個鍵值對是否相等,但這對於不同的地圖類型來說會變得重複。

慣用方法

Go 函式庫提供內建解決方案:reflect.DeepEqual。函數接受兩個 interface{} 參數並遞歸地比較它們的值。對於映射,它使用以下步驟來比較長度、鍵和值:

  1. 檢查兩個映射是否為零。
  2. 確保它們具有相同的長度。
  3. 驗證它們是否具有相同的一組(鍵,值)對。

用法範例

要比較兩個映射m1 和m2,請使用以下程式碼:

import "reflect"

eq := reflect.DeepEqual(m1, m2)
if eq {
    fmt.Println("They're equal.")
} else {
    fmt.Println("They're unequal.")
}

此解不需要自訂比較邏輯,並且適用於各種地圖類型。但請注意,如果傳遞錯誤,它也會比較非映射值。

以上是如何在 Golang 中測試地圖的等價性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn