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

2022-01-24 06:33:32 字數 638 閱讀 7414

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

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

import (

"fmt"

"reflect"

)func main()

v2 := data{}

fmt.println("v1 == v2:",reflect.deepequal(v1,v2))

//prints: v1 == v2: true

m1 := map[string]string

m2 := map[string]string

fmt.println("m1 == m2:",reflect.deepequal(m1, m2))

//prints: m1 == m2: true

s1 := int

s2 := int

fmt.println("s1 == s2:",reflect.deepequal(s1, s2))

//prints: s1 == s2: true

}

比較GUID是否相等

1 comparemem guid1,guid2,sizeof tguid 最開始時想到的方法。檢視delphi中tguid的定義可以看到tguid實際上是乙個結構。對於結構的比較來說最方便的就是記憶體直接比較了。tguid packed record d1 longword d2 word d3 ...

Integer比較是否相等問題

1.integer 與 integer 進行比較 2.integer 與 int 進行比較 第一種 integer 與 int進行比較 integer 與int進行比較,會自動比較 兩個的值是否相等,如同 int與int這種基本型別的比較一樣。第二種 integer 與 integer 進行比較 i...

BigDecimal如何比較是否相等

例子 bigdecimal a new bigdecimal 2.00 bigdecmial b new bigdecimal 2 system.out.println a.equals b 輸出結果是 false 原因是 bigdecimal比較時,不僅比較值,而且還比較精度?解決方法 bigde...