Avatar ·

Construtores em Go: como inicializar estruturas corretamente?

Olá a todos! Acabei de começar a estudar Go depois de Java e C#, e fiquei confuso com os construtores.\n\nEm Java, estou acostumado a escrever algo como:\n\n```java\npublic class User {\n private String name;\n private int age;\n \n public User(String name, int age) {\n this.name = name;\n this.age = age;\n }\n}\n```\n\nEm Go, vejo que não há a palavra-chave `class` e não há construtores explícitos. Tentei fazer assim:\n\n```go\ntype User struct {\n name string\n age int\n}\n\n// Tentativa 1: apenas uma função com o mesmo nome\nfunc User(name string, age int) User {\n return User{name: name, age: age}\n}\n// Erro: User redeclared in this block\n\n// Tentativa 2: método da struct\nfunc (u User) User(name string, age int) User {\n return User{name: name, age: age}\n}\n