结构体中的nil和0与空判断

简单的结构题

    type condition struct{
        Min  int  `json:min`
        Max int  `json:max`
    }

    str:=`{"min":0,"max":0}`
    var value condition
    err:=json.Unmarshal([]byte(str),&value)
    if err!=nil{
        fmt.Println(err.Error())
    }
    fmt.Println(value.Min)

    str1:=`{}`
    err2:=json.Unmarshal([]byte(str1),&value)
    if err2!=nil{
        fmt.Println(err2.Error())
    }
    fmt.Println(value.Min)

输出结构

0
0

结构体2

type condition struct{
        Min  *int  `json:min`
        Max *int  `json:max`
    }

    str:=`{"min":0,"max":0}`
    var value condition
    err:=json.Unmarshal([]byte(str),&value)
    if err!=nil{
        fmt.Println(err.Error())
    }
    fmt.Println(*value.Min)

    str1:=`{}`
    var value2 condition
    err2:=json.Unmarshal([]byte(str1),&value2)
    if err2!=nil{
        fmt.Println(err2.Error())
    }
    fmt.Println(value2.Min)

输出结构

0

你可能感兴趣的:(结构体中的nil和0与空判断)