Documentação de Go
Literais compostos em Go
Como construir valores de structs, arrays, slices e maps por expressões literais, inclusive inicializando campos por nome.
Revisado em 2026-11-15
Criar uma struct com campos nomeados
Um literal composto combina o tipo e os valores iniciais entre chaves. Em uma struct, podemos nomear os campos. A forma nomeada deixa claro o significado dos valores e permite omitir campos, que recebem seus valores zero.
account := Account{ID: "a", Balance: 5000}Obter um ponteiro para o valor
O operador & também pode receber um literal composto. &Account{...} inicializa um valor e produz um ponteiro para ele. Assim, return &TransferService{accounts: accounts} retorna *TransferService sem declarar uma variável temporária.
A função NewTransferService é uma convenção comum. Não é necessária para instanciar uma struct; pode encapsular validação ou preparação de dependências.
func NewTransferService(accounts AccountRepository) *TransferService {
return &TransferService{accounts: accounts}
}