可以通过遍历嵌套结构体的方式来判断是否所有属性都为空。以下是一个示例代码:

type Inner struct {
    A string
    B int
}

type Outer struct {
    X Inner
    Y Inner
}

func (i Inner) IsEmpty() bool {
    return i.A == "" && i.B == 0
}

func (o Outer) IsEmpty() bool {
    return o.X.IsEmpty() && o.Y.IsEmpty()
}

func main() {
    o1 := Outer{X: Inner{A: "", B: 0}, Y: Inner{A: "", B: 0}}
    o2 := Outer{X: Inner{A: "Hello", B: 42}, Y: Inner{A: "", B: 0}}

    fmt.Println(o1.IsEmpty()) // true
    fmt.Println(o2.IsEmpty()) // false
}

其中,InnerOuter 都实现了一个 IsEmpty() 方法来判断是否为空。在 OuterIsEmpty() 方法中,调用了 InnerIsEmpty() 方法来判断嵌套的结构体是否为空。最终,通过遍历嵌套结构体的方式来实现了判断是否所有属性都为空的功能。

golang 嵌套结构体 判断是否所有都为空

原文地址: https://www.cveoy.top/t/topic/vxM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录