Go Modules
  • Boas-vindas
  • Básico
    • O que é um módulo?
    • Rotina usando módulos
      • Criando um novo módulo
      • Adicionando uma dependência
      • Atualizando dependências
      • Adicionando uma dependência em uma nova versão principal (major)
    • Comandos comuns
  • Novos conceitos
    • Módulos
    • go.mod
    • Seleção de versão
  • Avançado
    • Go Module Proxy
    • go.sum
    • Checksum Database
  • Tutoriais
    • Como usar libs privadas?
    • Como usar libs privadas no Github Actions?
  • FAQ
    • Devo fazer commit do arquivo 'go.sum'?
    • Quando usar replace?
    • Posso trabalhar totalmente sem um versionador de código em meu sistema de arquivos local?
    • Como faço para usar a "vendor" com módulos?
    • Que ferramentas posso usar para trabalhar com módulos?
    • Devo adicionar um arquivo 'go.mod' mesmo que eu não tenha nenhuma dependência?
  • Releases
    • 1.13
    • 1.14
    • 1.15
Powered by GitBook
On this page
  1. Básico
  2. Rotina usando módulos

Criando um novo módulo

Vamos criar um novo módulo.

Crie um novo diretório vazio (em algum lugar fora de $GOPATH/src), vá até esse diretório e, em seguida, crie um novo arquivo, hello.go:

package hello

func Hello() string {
    return "Hello, world."
}

Vamos escrever um teste também em hello_test.go:

package hello

import "testing"

func TestHello(t *testing.T) {
    want := "Hello, world."
    if got := Hello(); got != want {
        t.Errorf("Hello() = %q, want %q", got, want)
    }
}

Neste ponto, o diretório contém um pacote, mas não um módulo, porque não há um arquivo go.mod. Se estivéssemos trabalhando em /home/gopher/hello e executássemos o teste agora, veríamos:

$ go test
PASS
ok  	_/home/gopher/hello	0.020s
$

A última linha resume o teste geral do pacote. Como estamos trabalhando fora do $GOPATH e também fora de qualquer módulo, o comando go não conhece o caminho de importação (import path) para o diretório atual e cria um falso com base no nome do diretório: _/home/gopher/hello.

Vamos tornar o diretório atual a raiz de um módulo usando go mod init e, em seguida, tente go test novamente:

$ go mod init example.com/hello
go: creating new go.mod: module example.com/hello
$ go test
PASS
ok  	example.com/hello	0.020s
$

Parabéns! Você escreveu e testou seu primeiro módulo.

O comando go mod init escreveu um arquivo go.mod:

$ cat go.mod
module example.com/hello

go 1.12
$
PreviousRotina usando módulosNextAdicionando uma dependência

Last updated 4 years ago