想要檢查兩個地圖是否相等。
package main
import (
"fmt"
"reflect"
)
func ParamDict(a int64,
b int64, c string) map[string]interface{} {
actual := make(map[string]interface{})
actual["a"] = a
actual["b"] = b
actual["c"] = c
return actual
}
func main() {
actualLocal := make(map[string]interface{})
actualLocal["a"] = 1
actualLocal["b"] = 2
actualLocal["c"] = "three"
actual := ParamDict(1, 2, "three")
expected1 := make(map[string]interface{})
expected1["a"] = 1
expected1["b"] = 2
expected1["c"] = "three"
fmt.Println(reflect.DeepEqual(actualLocal, expected1))
fmt.Println(reflect.DeepEqual(actual, expected1))
fmt.Printf("actual %T \n", actual)
fmt.Println(actual)
fmt.Printf("actualLocal %T \n", actualLocal)
fmt.Println(actualLocal)
fmt.Printf("expected1 %T \n", expected1)
fmt.Println(expected1)
}
輸出 :
true
false
actual map[string]interface {}
map[a:1 b:2 c:three]
actualLocal map[string]interface {}
map[a:1 b:2 c:three]
expected1 map[string]interface {}
map[a:1 b:2 c:three]
由于映射的行為類似于參考資料型別,因此沒有嘗試使用指標。reflect.DeepEqual() 對于主函式內的映射為真,但對于函式回傳的映射則回傳假。幫助修復和解決這個問題。
uj5u.com熱心網友回復:
正如其他人指出的那樣,資料型別不同只是將它們設為 int64。
package main
import (
"fmt"
"reflect"
)
func ParamDict(a int64,
b int64, c string) map[string]interface{} {
actual := make(map[string]interface{})
actual["a"] = a
actual["b"] = b
actual["c"] = c
return actual
}
func main() {
actualLocal := make(map[string]interface{})
actualLocal["a"] = int64(1)
actualLocal["b"] = int64(2)
actualLocal["c"] = "three"
actual := ParamDict(1, 2, "three")
expected1 := make(map[string]interface{})
expected1["a"] = int64(1)
expected1["b"] = int64(2)
expected1["c"] = "three"
fmt.Println(reflect.DeepEqual(actualLocal, expected1))
fmt.Println(reflect.DeepEqual(actual, expected1))
fmt.Printf("actual %T \n", actual)
fmt.Println(actual)
fmt.Printf("actualLocal %T \n", actualLocal)
fmt.Println(actualLocal)
fmt.Printf("expected1 %T \n", expected1)
fmt.Println(expected1)
}
輸出 :
true
true
actual map[string]interface {}
map[a:1 b:2 c:three]
actualLocal map[string]interface {}
map[a:1 b:2 c:three]
expected1 map[string]interface {}
map[a:1 b:2 c:three]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/534501.html
標籤:字典去
