Olá, mundo em Go
Esta aula introduz a estrutura básica de um programa em Go, explicando o papel do package main e da função main, como executar e compilar código com go run e go build, e a importância da formatação automática com gofmt.
Nesta aula, vamos escrever nosso primeiro programa em Go: o clássico "Olá, mundo!". Você aprenderá a estrutura fundamental de um programa Go, como executá-lo e compilá-lo, e como manter seu código formatado corretamente.
Estrutura de um programa
Um programa Go é composto por pacotes. Todo arquivo Go pertence a um pacote, que é declarado na primeira linha do arquivo com a palavra-chave package. O programa começa a execução a partir do pacote main. Dentro de um pacote, podemos ter funções, variáveis e outros elementos. A função main é o ponto de entrada do programa.
Exemplo mínimo de um programa Go:
package main
func main() {
println("Olá, mundo!")
}
package main e func main
O pacote main é especial: ele define um programa executável, não uma biblioteca. A função main não recebe argumentos e não retorna nada. Ela é chamada automaticamente quando o programa é executado. Todo programa Go deve ter um pacote main com uma função main para ser executável.
Exemplo com fmt.Println:
package main
import "fmt"
func main() {
fmt.Println("Olá, mundo!")
}
go run e go build
Para executar um programa Go diretamente sem gerar um binário, use o comando go run. Ele compila e executa o código em um único passo. Para gerar um binário executável, use go build, que produz um arquivo executável no diretório atual.
Exemplos:
# Executar diretamente
go run main.go
# Compilar para binário
go build main.go
./main # no Linux/macOS
main.exe # no Windows
gofmt
Go incentiva a formatação consistente do código. A ferramenta gofmt formata automaticamente o código Go seguindo as convenções da linguagem. Ela ajusta indentação, espaçamento e alinhamento. Você pode executá-la manualmente ou configurar seu editor para formatar ao salvar.
Uso básico:
# Formatar um arquivo
gofmt -w main.go
# Verificar formatação sem alterar
gofmt -d main.go
O comando go fmt é um alias para gofmt -l -w e formata todos os arquivos do pacote.
Referências
Exercícios
- Escreva um programa Go que imprima "Olá, mundo!" usando a função
fmt.Println. - Compile o programa do exercício 1 usando
go builde execute o binário gerado. - Execute o programa do exercício 1 diretamente com
go run. - Formate o código abaixo usando
gofmt: - Explique a diferença entre
go runego build.
package main
import "fmt"
func main() {
fmt.Println("Olá, mundo!")
}
go build main.go
./main # ou main.exe no Windows
go run main.go
package main
import "fmt"
func main(){
fmt.Println("Olá")
}
package main
import "fmt"
func main() {
fmt.Println("Olá")
}
go run compila e executa o programa em um único passo, sem gerar um arquivo binário permanente. go build compila o programa e gera um binário executável que pode ser executado posteriormente sem necessidade do código fonte ou do Go instalado.