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

  1. Básico sobre package
  2. Declarar e 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 criar a subpasta pacote_teste

2: Criar um novo arquivo .go

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

3: Declarar como package

No novo arquivo criado em 2, adicionar package pacote_teste no topo do arquivo

3: Declarar recursos

No novo arquivo criado em 2, adicionar os recursos necessários

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

Vamos importar e utilizar nosso package em nosso arquivo main.go

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

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 escritos com a letra inicial minúscula, são considerados recursos locais ou privados ao pacote não sendo acessados de fora.

Para tornar os recursos de um pacote como públicos, é necessário declará-los com a letra inicial maiúscula e podem ser acessado de fora do pacote onde foi declarado.

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