Avatar ·

Como importar pacotes locais em Go sem GOPATH (Módulos Go)

Olá! Estou começando a aprender Go e tive um problema com a importação de pacotes locais. Estou acostumado a trabalhar com outras linguagens onde posso simplesmente criar arquivos em uma pasta e importá-los. Mas em Go, tudo é mais complicado. Eu tenho a seguinte estrutura de projeto: ``` myproject/ ├── main.go └── utils/ └── helper.go ``` Em `helper.go`, defini a função `Hello()`: ```go package utils func Hello() string { return "Olá do utils!" } ``` Em `main.go`, estou tentando importar este pacote: ```go package main import ( "fmt" "myproject/utils" ) func main() { fmt.Println(utils.Hello()) } ``` Mas quando executo `go run main.go`, recebo o erro: `package myproject/utils is not in GOROOT (/usr/local/go/src/myproject/utils)`. Eu li que antes era necessário configurar o GOPATH, mas ouvi dizer que nas novas versões do Go existe algo chamado "módulos". Como importar corretamente pacotes locais sem GOPATH? Explique, por favor, para um iniciante, passo a passo.