python判斷零值很簡單,因為是弱型別,所以會內建自動裝箱判斷處理。
只需要 if x : 即可。但是go如何判斷?這裡可以借助反射reflect處理。
func iszeroofinte***ce(x inte***ce{}) bool
value := reflect.valueof(x)
switch value.kind()
return reflect.deepequal(value.inte***ce(), reflect.zero(value.type()).inte***ce())
}
測試
func testiszeroofinte***ce(t *testing.t)
var person person
person2 := person
fmt.println(iszeroofinte***ce(person))
fmt.println(iszeroofinte***ce(person2))
person2.age = 11
fmt.println(iszeroofinte***ce(person2))
// nil
fmt.println(iszeroofinte***ce(nil))
}
結果
Go語言反射之值反射
反射不僅可以獲取值的型別資訊,還可操作變數的值。使用reflect.value型別操作變數的值。v make int,10 valuev reflect.valueof v fmt.println valuev.isvalid true fmt.println valuev.isnil false ...
go 判斷int 無賦值 Go之基礎知識二
一 數值型別 1 整型 go語言的整數型別一共有10個 int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64,可能我們比較常用的就是預設的int和uint,它們隨計算機架構不同所佔空間也會不一樣,而空間的表示法有位元bit或位元組byt...
go常用的判斷
var str string 字串初始化為 只能通過len str 而不能通過nil判斷 var i int int初始化為0 只能通過i 0,而不能通過nil判斷 var b bool 初始化為false,只能通過b true 而不能通過nil判斷 var bb byte 初始化為,可以用len ...