如何检查是否设置了结构域

时间:2019-05-27 02:22:25

标签: go

如何判断struct的字段已设置? 例如,当未设置“ p”的“ age”字段时,我想保留num默认值-1。

发现这很棘手,因为“ p.age!= nil”的语法不正确,因为“ p.age”只能与float32进行比较,而“ p.age!= float32(0)”也不正确当p.age实际上等于float32(0)时将被忽略。

package main

import "fmt"

type Person struct {
    name string
    age float32
}


func main() {

    p := &Person{name:"apple"}
    num := float32(-1)
    if p.age != nil {   //something like this.
        num = p.age
    }
    fmt.Println(num)

}

0 个答案:

没有答案