Avatar ·

Como verificar se uma struct está vazia em Go? (struct vazia, comparação com nil)

Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema. Tenho uma struct que é retornada de uma função. Às vezes ela está vazia (todos os campos são valores zero), e às vezes está preenchida. Preciso verificar se ela está vazia para não processá-la. Em outras linguagens, estou acostumado a verificar com `null` ou `None`. Em Go, tentei comparar com `nil`: ```go type User struct { Name string Age int } func getUser() User { // ... alguma lógica return User{} } u := getUser() if u == nil { fmt.Println("vazio") } ``` Mas o compilador reclama: `cannot convert nil to type User`. Entendi que structs não são ponteiros, e `nil` não se aplica a elas. Então tentei comparar com uma struct vazia: ```go if u == User{} { fmt.Println("vazio") } ``` Mas isso também não funciona se a struct tiver campos do tipo slice ou map, porque eles não podem ser comparados com `==`. Como verificar corretamente e de forma idiomática se uma struct está vazia em Go? Talvez exista