Avatar ·

Como chamar uma função de outro arquivo em Go: estrutura do projeto e import

Olá, colegas! Comecei a estudar Go recentemente e me deparei com um problema que parece muito simples, mas não consigo encontrar a solução correta. Tenho dois arquivos no mesmo projeto: `main.go` e `helpers.go`. Em `helpers.go`, declarei uma função `sayHello()` que exibe uma saudação. Em `main.go`, estou tentando chamar essa função, mas o compilador reclama que a função não está definida. Aqui está a estrutura da minha pasta: ``` myproject/ ├── main.go └── helpers.go ``` Código de `helpers.go`: ```go package main import "fmt" func sayHello() { fmt.Println("Hello from helpers!") } ``` Código de `main.go`: ```go package main func main() { sayHello() } ``` Quando executo `go run main.go`, recebo o erro: `undefined: sayHello`. Se eu executar `go run main.go helpers.go`, funciona. Mas me disseram que em Go não é necessário especificar explicitamente todos os arquivos ao executar. O que estou fazendo de errado? Será que o problema é que estou usando uma estrutura de pacotes incorreta? Preciso criar um