Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Básico sobre package
  2. Declarar/invocar um método
  3. Encapsulamento

Utilizamos alguns packages ao longo deste tutorial até o momento. Agora chegou a hora de entendermos como podemos criar nossos próprios packages na linguagem Go.

Para acompanhar esta parte do tutorial é necessário ter conhecimento de Go: Funções, o compilador online deve suportar criação de arquivos caso esse tipo de compilador seja utilizado.

Para criarmos um package do usuário, precisamos seguir os passos abaixo:

1: Criar subpasta

Na pasta onde está contido o arquivo main.go devemos criar uma subpasta chamada pacote_teste

2: Criar um novo arquivo .go

Dentro da subpasta criada em 1, devemos criar um novo arquivo chamado pacote_teste.go

3: Declarar como package

No novo arquivo criado em 2, adicionar a declaração package pacote_teste no topo do arquivo.

3: Declarar recursos

No novo arquivo criado em 2, adicionar os recursos necessários: variáveis constantes e etc.

Exemplo 1
//pacote_teste.go
package pacote_teste

import "fmt"

const Constante_teste = 3.14

func Funcao_teste(param int){
    fmt.Printf("Valor informado: %q", param)
}
4: Importar o package

Agora, vamos importar e utilizar nosso package em nosso arquivo main.go:

package main 
import "fmt" 
import "pacote_teste/pacote_teste" //importando package

func main(){

    fmt.Printf("%0.2f", pacote_teste.Constante_teste)   
    pacote_teste.Funcao_Teste(100)
}
Saída
3.14
Valor informado: "100"

Os arquivos .go criamos nos passos acima devem estar mantidos/criadas em uma mesma pasta raiz onde o arquivo main.go está localizado.

A linguagem Go, possui uma peculiaridade em relação ao acesso de recursos contidos em um package. Seus recursos podem ser públicos ou privados.

Variáveis, constantes, funções e métodos cujo nomes sejam iniciados com a letra inicial minúscula são considerados recursos locais ou privados ao pacote, não sendo acessados de outros arquivos .go.

Para tornar os recursos de um pacote públicos, é necessário declará-los com a primeira letra de seus nomes com uma letra inicial maiúscula. Assim, podem ser acessado de fora do pacote onde foram declarado.

Exemplo 2
//Função pública
func Funcao1(param int){
    //corpo
}
//função privada ou local
func funcao2(){
  //corpo
}
Saída
-
  1. 08/09/2025 - revisão 3 - Ajustes: pontuais
  2. 16/09/2024 - revisão 2 - Ajustes gramaticais
  3. 02/10/2023 - revisão 1 - Correção em referências, erros gramaticais, exemplos e remoção de texto lixo
  4. 21/08/2023 - versão inicial