Avatar ·

Como passar um valor padrão para um método em Go se a linguagem não tem sobrecarga de funções?

Olá a todos! Comecei a estudar Go depois do Python e me deparei com um problema inesperado. Em Python, estou acostumado a escrever funções com argumentos padrão, por exemplo: ```python def greet(name, greeting="Hello"): print(f"{greeting}, {name}!") ``` Se chamar `greet("Alice")`, o greeting automaticamente se torna "Hello". Se necessário, posso passar meu próprio valor: `greet("Alice", "Hi")`. Agora estou escrevendo em Go e quero fazer um método parecido. Digamos que eu tenha uma struct `Config` e um método `NewClient` que recebe o endereço do servidor e um timeout. Quero que o timeout padrão seja 30 segundos, mas às vezes o usuário possa definir o seu próprio. Em Go, tentei escrever assim: ```go type Config struct { Address string Timeout int } func NewClient(address string, timeout int) *Config { if timeout == 0 { timeout = 30 // valor padrão } return &Config{Address: address, Timeout: timeout} } ``` Mas isso funciona mal: se o usuário explicitamente passar