Avatar ·

Como definir valores padrão para campos de structs em Go?

Olá a todos! Sou novo em Go e me deparei com um problema: em Go não há construtores e nenhum mecanismo embutido para especificar valores padrão para campos de structs, como, por exemplo, em Python ou PHP. Suponha que eu tenha uma struct para configuração de aplicação: ```go type Config struct { Port int Timeout int Debug bool } ``` Eu quero que, por padrão, `Port` seja 8080, `Timeout` seja 30 segundos e `Debug` seja `false`. Mas quando crio uma struct `cfg := Config{}`, todos os campos recebem valores zero (0, 0, false). Tenho que especificar explicitamente todos os campos toda vez: `cfg := Config{Port: 8080, Timeout: 30}`. Isso é inconveniente, especialmente se a struct tiver muitos campos e eu quiser que alguns deles tenham valores padrão razoáveis. Tentei usar tags de struct, mas elas parecem não afetar a inicialização. Existe alguma forma de definir valores padrão diretamente na definição da struct? Ou preciso escrever alguma função factory? Mas então, para cada struct...