Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

"Saldo", "saldo" e Instancia do Objeto ContaCorrente

Pelo que percebi, se todos os atributos da struct forem públicos, existe a flexibilidade no momento de instanciar o objeto. Ex:

contaCamila := &c.ContaCorrente{titularCriadoNaLinhaDeCima, 0001, 1002, -100.0}

Porém, se o Saldo for saldo, ou seja, privado, ele não permite declarar o objeto como o código acima. Então será obrigatório colocar os títulos dos atributos, como o exemplo abaixo: Ex:

contaCamila := &c.ContaCorrente{Titular: titularCriadoNaLinhaDeCima, NumeroAgencia: 0001, NumeroConta: 1002}
1 resposta
solução!

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 ✓.