Muito cuidado com a Struc em letras minusculas, e com o import, a questão do import ainda não to sabendo mt bem, mas tem um artigo que eu recebi que parece que é bom: https://go.dev/doc/tutorial/call-module-code
Muito cuidado com a Struc em letras minusculas, e com o import, a questão do import ainda não to sabendo mt bem, mas tem um artigo que eu recebi que parece que é bom: https://go.dev/doc/tutorial/call-module-code
Olá Felipe!
Obrigada por compartilhar sua dúvida sobre o uso de structs e imports no Go. Entendo que você está com dificuldades em entender como importar pacotes e como utilizar a struct ContaCorrente
em diferentes arquivos.
Pelo contexto que você compartilhou, parece que você já está no caminho certo. Ao criar um pacote contas
e colocar a struct ContaCorrente
nele, você está organizando seu código de forma mais clara e modular. Isso facilitará a manutenção e entendimento do código por outros desenvolvedores.
No entanto, ao importar o pacote contas
no arquivo main.go
, você precisa especificar o caminho completo do pacote. No seu caso, o caminho seria github.com/alura/banco/contas
. Dessa forma, o Go saberá onde encontrar as informações contidas no pacote.
Além disso, é importante lembrar da questão da visibilidade dos campos da struct. No Go, se você escrever os nomes dos campos com a primeira letra em minúsculo, eles serão visíveis apenas no arquivo em que foram declarados. Para torná-los visíveis em outros arquivos, você deve escrever os nomes dos campos com a primeira letra em maiúsculo.
Por exemplo, na struct ContaCorrente
, você pode alterar os campos titular
, numeroAgencia
, numeroConta
e saldo
para Titular
, NumeroAgencia
, NumeroConta
e Saldo
, respectivamente. Dessa forma, eles serão visíveis em outros arquivos que importarem o pacote contas
.
No arquivo main.go
, você pode utilizar a struct ContaCorrente
do pacote contas
da seguinte forma:
package main
import (
"fmt"
"github.com/alura/banco/contas"
)
func main() {
contaDaSilvia := contas.ContaCorrente{Titular: "Silvia", Saldo: 300}
contaDoGustavo := contas.ContaCorrente{Titular: "Gustavo", Saldo: 100}
status := contaDoGustavo.Transferir(-200, &contaDaSilvia)
fmt.Println(status)
fmt.Println(contaDaSilvia)
fmt.Println(contaDoGustavo)
}
Dessa forma, você estará utilizando a struct ContaCorrente
do pacote contas
no arquivo main.go
.
Espero ter ajudado! Se tiver mais alguma dúvida, é só me dizer. Bons estudos!