Go語言 bytes.Equal() 和 reflect.DeepEqual() 的不一樣

1.bytes.Equal(a []byte,b []byte) bool
對比a和b的長度和所包含的字節是否相同,一個nil參數與一個空的slice相同。
 
2.reflect.DeepEqual(x,y interface{}) bool
DeepEqual反饋x和y是不是深等價。具體依據以下
  • x 和 y 同nil 或者同non-nil
  • x 和 y 具備相同的長度
  • x 和 y 指向同一個底層數組所初始化的實體對象。(&x[0] == &y[0])
注意:一個non-nil的空切片和一個nil的切片不是深等價。例如([]byte{} 和[]byte{nil})是非等價的。
 
其餘值:numbers,bools,strings和channels 若是他們使用「==」相等則是深等價的。
相關文章
相關標籤/搜索