前言
使用任何編程語言都會遇到判空的問題,那么Golang對於自定義的結構體類型如何判空呢?
其實空結構體可不是簡單的與nil做比較哦。請看下面兩種方法:
package main
import (
"fmt"
"reflect"
)
type A struct {
name string
age int
}
func (a A) IsEmpty() bool {
return reflect.DeepEqual(a, A{})
}
func main() {
var a A
if a == (A{}) { // 括號不能去
fmt.Println("a == A{} empty")
}
if a.IsEmpty() {
fmt.Println("reflect deep is empty")
}
}