Go語言深度比較值是否相等


Go語言深度比較值是否相等

  • 需求描述:

我們在開發過程中經常會遇到一些需要比較值是否相等的場景,例如比較兩個數組、結構體、Map、等,自己寫這些代碼比較繁瑣,大部分時候這里都可以使用到反射reflect包自帶的DeepEqual函數處理。

因為用到了反射,所以開銷性能方面比較差些,如果實在在意這些,還是自己實現更好。

  • 代碼示例:
import (
    "fmt"
    "reflect"
)

func main() {

    v1 := data{}
    v2 := data{}
    fmt.Println("v1 == v2:",reflect.DeepEqual(v1,v2))
    //prints: v1 == v2: true

    m1 := map[string]string{"one": "a","two": "b"}
    m2 := map[string]string{"two": "b", "one": "a"}
    fmt.Println("m1 == m2:",reflect.DeepEqual(m1, m2))
    //prints: m1 == m2: true

    s1 := []int{1, 2, 3}
    s2 := []int{1, 2, 3}
    fmt.Println("s1 == s2:",reflect.DeepEqual(s1, s2))
    //prints: s1 == s2: true
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM