AnyCompiler

Introdução ao Go

Go (frequentemente chamado de Golang) é uma linguagem compilada e com coletor de lixo, projetada no Google com um princípio orientador: a simplicidade. Ela tem um conjunto pequeno e deliberadamente mínimo de recursos de linguagem — sem classes, sem exceptions, sem abstrações pesadas de generics por padrão — o que mantém as bases de código fáceis de ler mesmo quando crescem.

O código Go compila diretamente para um binário nativo, e compila rápido — uma das características mais marcantes da linguagem. O compilador verifica cada tipo antes do seu programa rodar, então uma incompatibilidade de tipo é capturada imediatamente como um erro de compilação, não como uma surpresa em tempo de execução.

Por que a simplicidade do Go importa

  • Compilação rápida — o Go foi construído em parte para resolver tempos de build dolorosamente lentos em grande escala, e ainda hoje compila bases de código grandes em segundos
  • Fácil de ler — um pequeno conjunto de recursos de linguagem significa que o código Go escrito por pessoas diferentes tende a parecer muito semelhante, o que facilita a navegação em bases de código grandes
  • Concorrência integrada — goroutines e channels fazem parte da própria linguagem, não são uma biblioteca adicionada, o que torna o código concorrente um cidadão de primeira classe
  • Um único estilo oficial de formatação — gofmt significa que não há debate sobre estilo de código; toda base de código Go é formatada da mesma forma

Uma prévia rápida

Aqui está um programa Go real, executado de verdade no próprio compilador desta página — não é uma simulação:

package main

import "fmt"

func main() {
	message := "Hello from Go!"
	fmt.Println(message)
}
Output
Hello from Go!

É isso — uma variável, atribuída com :=, impressa com fmt.Println. A próxima lição executa seu primeiro programa completo e explica exatamente o que está acontecendo.

Practice exercise

Declare uma variável version := 5, depois imprima "Go version:" seguido de version usando fmt.Println("Go version:", version).