Pa

Pacotes em Go

1 exercício

Sobre Pacotes

Em Go, uma aplicação organiza-se em pacotes. Um pacote é um conjunto de ficheiros de código-fonte que estão na mesma pasta. Todos os ficheiros de código-fonte numa pasta têm de ter o mesmo nome de pacote no topo do ficheiro. Por convenção, os pacotes têm o mesmo nome da pasta onde se encontram.

package greeting

O Go disponibiliza uma extensa biblioteca padrão de pacotes que podes usar no teu programa com a palavra-chave import. Os pacotes da biblioteca padrão são importados através do seu nome.

package greeting

import "fmt"

É possível importar vários pacotes ao mesmo tempo, listando-os entre parênteses.

package greeting

import (
    "errors"
    "fmt"
)

Os pacotes de terceiros são importados através do URL do local onde o pacote se encontra. Um pacote pode receber um alias quando é importado. Isto pode ser usado para evitar conflitos entre nomes de pacotes:

package greeting

import (
	"errors"

	errs "github.com/pkg/errors"
)

Um pacote importado é depois referido pelo nome do pacote ou pelo alias:

// using the internal errors package
errors.New("Connection not established")

// using the errors package located at github.com/pkg/errors by alias
errs.New("Connection not established")

O Go determina se um elemento pode ser chamado por código de outros pacotes através da forma como é declarado. Para tornar uma função, um tipo, uma variável ou uma constante visíveis externamente (a que se chama exported), o nome tem de começar por uma letra maiúscula. Isto é análogo à forma como outras linguagens de programação, como o Java, usam modificadores de acesso como public e private.

package greeting

// Hello is a public function (callable from other packages).
func Hello(name string) string {
    return "Hello " + name
}

// hello is a private function (not callable from other packages).
func hello(name string) string {
    return "Hello " + name
}

O mesmo se aplica aos nomes dos campos em tipos struct personalizados: os nomes de campos que começam por letra maiúscula são visíveis externamente, os que começam por minúscula não são.

Editar via GitHub A ligação abre numa nova janela ou separador

Aprende Pacotes

A prática está bloqueada

Desbloqueia mais 1 exercício para praticares Pacotes