我們在開發過程中經常會遇到一些需要比較值是否相等的場景,例如比較兩個陣列、結構體、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...