Fácil Go
Criando um pacote exportado
Enunciado
Crie um módulo chamado exemplo.com/calculadora com um pacote calculadora que exporte uma função Multiplicar(a, b int) int. No main.go, importe o pacote e use a função para multiplicar 6 por 7, imprimindo o resultado.
Requisitos
- O arquivo
go.moddeve declarar o móduloexemplo.com/calculadora. - O pacote
calculadoradeve estar em um subdiretóriocalculadora/. - A função
Multiplicardeve ser exportada (inicial maiúscula). - A saída deve ser exatamente
Resultado: 42.
Código inicial
// main.go
package main
import (
"fmt"
// importe o pacote calculadora
)
func main() {
// chame calculadora.Multiplicar(6, 7) e imprima
fmt.Println("Resultado:", 0) // substitua
}
Saída esperada
Resultado: 42
Ver dica
Crie uma pasta calculadora e dentro dela um arquivo calculadora.go com package calculadora. A função deve ter inicial maiúscula para ser exportada.
Mostrar solução
// go.mod
module exemplo.com/calculadora
go 1.22
// calculadora/calculadora.go
package calculadora
// Multiplicar retorna o produto de a e b.
// Exportada porque começa com letra maiúscula.
func Multiplicar(a, b int) int {
return a * b
}
// main.go
package main
import (
"fmt"
"exemplo.com/calculadora/calculadora"
)
func main() {
resultado := calculadora.Multiplicar(6, 7)
fmt.Println("Resultado:", resultado)
}
Passo a passo
- Criamos o módulo com
go mod init exemplo.com/calculadora, que gera ogo.modcom o nome do módulo e a versão do Go. - Dentro da pasta
calculadora, criamos o arquivocalculadora.gocom a declaraçãopackage calculadora. - Definimos a função
Multiplicarcom inicial maiúscula, tornando-a exportada e acessível de outros pacotes. - No
main.go, importamos o pacote usando o caminho completo do módulo:exemplo.com/calculadora/calculadora. - Chamamos
calculadora.Multiplicar(6, 7)e armazenamos emresultado. - Imprimimos com
fmt.Println, formatando a saída comoResultado: 42.
Por que funciona
Em Go, a visibilidade é determinada pela primeira letra do identificador. Como Multiplicar começa com 'M' maiúsculo, ela é exportada e pode ser usada fora do pacote calculadora. O caminho de importação segue o nome do módulo declarado no go.mod mais o caminho relativo da pasta. O compilador resolve o pacote e verifica se a função existe e é exportada.
Erros comuns
- Esquecer a letra maiúscula:
func multiplicar(a, b int) int— a função fica privada e omainnão consegue acessá-la, gerando erroundefined: calculadora.Multiplicar. - Caminho de import errado: usar
import "calculadora"em vez deexemplo.com/calculadora/calculadora. O Go não encontra o pacote e dá erro de importação. - Nome do pacote diferente da pasta: se a pasta se chama
calculadoramas o arquivo declarapackage calc, o import ainda funciona, mas a referência no código deve sercalc.Multiplicar. É boa prática manter os nomes iguais.
Outra forma de resolver
Se o módulo for apenas para estudo local, pode-se usar um caminho mais curto como module calculadora e importar calculadora/calculadora. No entanto, para projetos reais, usar um domínio (ex.: exemplo.com/...) evita conflitos com outros módulos.
Saída esperada
Resultado: 42