5
respostas

Modulo GO LANG

Boa tarde!

O seguinte estou tentando configurar meus modulos para se comunicar e nao estou conseguindo. Eu criei uma pasta chamada Golang no meu windows e nela criei mais duas pastas uma chamada "contas" e outra "clientes" e cada uma tem meus aquivos contaCorrente.go e clientes.go, contudo quando vou importar meu modulo para ambos não da fala que o objeto nao existe podem me ajudar? Eu criei um go mod referenciando os meus package e mesmo assim nao funcionou conforme imagem

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

5 respostas

Ola Rubens, o go mod funciona de uma forma parecida do npm em relação as dependências, então tenha de preferência apenas um por projeto e na raiz. a partir dai para importar os packages de dentro do projeto basta colocar o path do nome do go mod e o path até o arquivo.

ex:

meu modulo se chama bank

a caso queira importar o conta corrente no cliente ficaria

package clientes

import (
    "bank/contas"
)

contas.ContaCorrenteXPTO

Certo! Como eu faria para colocar na raiz do meu Windows? Porque na aula nao ficou muito claro e se eu quiser compatilhar com mais pessoas meu projeto nao ficaria preso apenas no meu workspace do meu computador?

Eu nao conheço o NPM conheço Python que e bem simples de modularizar, ainda nao entendi direito como que faz. Criei um go mod na raiz referenciando os meus dois packages clientes e contas, mas mesmo assim nao funcionou

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

na raiz do projeto, digo seu projeto esta localizado numa pasta go/src/Meu_Projeto exemplo Então obrigatoriamente seu go.mod estará denrto desse Meu_Projeto

ai todas as pastas denrto como oclientes e contas quando for importado em outro arquivo ou no main.go precisa considerar o nome do module e o path exemplo se importar o contaCorrente no main.go ficaria

package main

import(
    "localhost.com/server/contas"
)

func main() {
    novaConta := contas.ContaCorrente{}
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Aqui funcionou.

O arquivo go.mod "habilita" meu projeto a utilizar pacotes locais informando qual a pasta raiz que contem os módulos. Depois disso o projeto fica apto para trabalhar com pacotes locais como em linguagens como Python ou mesmo o JavaScript.

Valeu a explicação