1
resposta

Struct e Import

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

1 resposta

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!