我们可以直接使用reflect.DeepEqual来比较两个slice、struct或者map是否相等
package main import ( "fmt" "reflect") type A struct { s string} func main() { a1 := A{s: "abc"} a2 := A{s: "abc"} if reflect.DeepEqual(a1, a2) { fmt.Println(a1, "==", a2) } b1 := []int{1, 2} b2 := []int{1, 2} if reflect.DeepEqual(b1, b2) { fmt.Println(b1, "==", b2) } c1 := map[string]int{"a": 1, "b": 2} c2 := map[string]int{"a": 1, "b": 2} if reflect.DeepEqual(c1, c2) { fmt.Println(c1, "==", c2) } }
对于slice,我们还可以使用另外一种方法:
func stringSliceEqualBCE(a, b []string) bool { if len(a) != len(b) { return false } if (a == nil) != (b == nil) { return false } b = b[:len(a)] for i, v := range a { if v != b[i] { return false } } return true}
还在找我的道
作者:timliudream
原文链接:https://www.cnblogs.com/TimLiuDream/p/10124120.html
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦