package main import ( "encoding/json" "fmt" "reflect" ) type jj struct { zz int } func main() { var s string var a int byte,err:=json.Marshal(jj{}) return dd(s) dd(a) dd(jj{}) //byte,err:=json.Marshal(jj{}) if(err!=nil){ panic("") } str:=string(byte) dd(str) dd(jj{}) s="123" a=123 dd(s) dd(a) } func dd(a interface{}) { if(reflect.ValueOf(a).IsNil()){ fmt.Println("是否为空") } if(reflect.ValueOf(a).IsZero()){ fmt.Println("是否为零值") } if(reflect.ValueOf(a).IsValid()){ fmt.Println("是否无效") } /*if(a==nil){ fmt.Println("==nil") }*/ fmt.Print(reflect.TypeOf(a),a) }