Olá Cleverson! Tudo joia?
Você está absolutamente correto na sua observação sobre a visibilidade dos campos em structs no Go.
Quando um campo é público, ou seja, começa com uma letra maiúscula, ele pode ser acessado e modificado diretamente fora do pacote em que foi definido. No entanto, ao torná-lo privado (começando com uma letra minúscula), ele só pode ser acessado e modificado dentro do mesmo pacote.
No seu exemplo, ao tornar o campo saldo
privado, você precisa especificar os campos ao instanciar a struct ContaCorrente
, pois não é possível acessar diretamente o campo saldo
fora do pacote. Isso é uma prática comum para encapsular dados e controlar como eles são acessados e modificados.
Para lidar com isso, você pode criar métodos públicos que permitem interagir com o saldo de forma controlada. Por exemplo, um método Depositar
que só permite depósitos de valores positivos e um método ObterSaldo
que retorna o saldo atual. Dessa forma, você mantém o controle sobre como o saldo é modificado, evitando atribuições diretas de valores indesejados.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.