GoLang: Uma breve introdução
- #GoLang

Ao longo da busca por linguagens de programação simples e com fácil aprendizado, se encontra a famosa GoLang do Google, nascida por volta de 2010. Seu objetivo era claro, ser veloz, trabalhar com multi-thread e concorrência, coisas que a equipe da linguagem tinham dificuldade de fazer com C/C++, fazendo eles não gostarem muito dos resultados. Além disso tudo a própria Google queria algo mais robusto, simples e que fosse seu, Nascia então o Go.
Estrutura de um projeto Go
A sua estrutura é composta por módulos e um arquivo main.go, pense nele como o motor da aplicação. Todos eles acompanhados de um go.mod (declaração de módulo). Veja só:

Obs.: Esse é um mero exemplo didático, leia mais afundo estruturas de pastas em GoLang
Vantagens do Go
Ele possui muitas vantagens, tais como:
- Módulo de testes nativo
- Tudo que você precisa já esta lá (baterias inclusas), mas claro, existem libs de vários devs por aí
- Criação de Scripts de automação
- APIs Backend é algo excepcional
- Filosofia de consistência na linguagem
- Fácil de aprender
- Executável nativo
Claro que existem muitas outras. E você pode ler todas aqui.
Variáveis e main.go
Em GoLang existem duas maneiras de declarar variáveis. Mas afinal, oque elas são? Variáveis são um espaço que o seu programa ocupa da memória RAM, tudo no momento em que seu programa está sendo executado e processando dados ou fazendo cálculos matemáticos. Elas existem até seu programa parar de ser executado ou se forem desalocada da memória pelo dev, prática comum em C/C++, mas não no Go.
Coletor De Lixo (GC)
Ainda falando das variáveis, Go tem uma forma diferente de equilibrar e ajustar o uso de recursos, enquanto no C/C++ usamos algo como: malloc ou outras funções, no Go isso é feito por baixo dos panos, aonde temos o "Lixeiro", imagine algo como: Todo dia em frente a sua casa passa o caminhão de lixo, pegando tudo aquilo que você não precisa mais ou perdeu valor de uso. Em Go é basicamente a mesma coisa, o GC joga fora, ou melhor limpa da memória recursos que o programa não precisa mais, deixando tudo rápido e bem estável.
Var, const e o operador :=
Para entendermos tudo de maneira muito simples, veja oque cada Keyword (palavra-chave), faz no Go:
VAR: Declaramos variáveis de maneira explicita e literal, ou seja, aqui dizemos algo como "Isso é variável" e então damos um nome a ela, que de regra não pode iniciar com números, conter espaços, assentos ou emojis. Veja o código:
var nome_pessoa string = "João" // repare que eu usei underscore (_) para separar nome de pessoa, isso se chama snake_case (caso_cobra) :)
CONST: Suponha que você não queira que um valor mude (varie = variável), mas que ele seja constante (fixo). Então usamos const como palavra chave. Veja:
const PI float32 = 3.1415 // PI assim como o número de Euler é uma constante matemática, que usamos em cálculos de área e na física
Operador := e inferência: Quem já passou pelo Delphi (Pascal), já se deparou com o famoso :=, quando declarava variáveis, pois bem, em Go ele também serve para isso, inferindo o tipo, ou seja, é como eu falar para alguém que dentro da caixa de um bombom tem ele próprio, mas a marca não foi colocada (Nestle, Garoto), eu inferi isso, mas a pessoa quando abriu com toda certeza disse: "Ei, espera. Esse é um sonho de valsa da Nestle!". Em Go você diz algo como:
nome_pessoa := "João" // Go vai saber que é string e vai pensar: Hummm.. Ele está me dizendo que é var nome_pessoa string = "João"
var nome_pessoa = "João" // também posso fazer essa inferência
Note como isso simplifica. Fato interessante, todo dev Go usa :=, é quase mantra!
Tipos de dados em Go
Os tipos são:
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // alias for uint8
rune // alias for int32
// represents a Unicode code point
float32 float64
complex64 complex128
Um simples programa em Go
Para que você possa entender a estrutura básica de um programa GoLang eu preparei o seguinte código:
import "fmt" // fmt é a sigla para format
/*
Esse é um comentário de multi-linha.
Não será executado!
*/
// Esse é o comentário curto, de uma única linha
// ponto de execução do programa
func main() {
fmt.Println("Hello World!") // imprime algo na tela
var message string = "GoLang é muito divertida!"
fmt.Println(message)
nome := "João" // string
idade := 25 // int
eh_maior := true // bool
altura := 1.83 // float32
fmt.Printf("Me chamo %s, tenho %d idade e possuo %.2f de altura.\n", nome, idade, altura) // print formatado
fmt.Println("Sou maior de idade?", eh_maior)
}
Aqui podemos ver várias coisas novas, porém, falarei do fmt, Println, Printf e main. Vamos começar pelo fmt, ele é um módulo usado para tratar de fornecer os dois métodos de saída:
- Println(...args), imprime quebrando a linha, posso passar vários argumentos, incluindo textos e variáveis
- Printf(string, ...args), imprime em uma única linha e por isso, usa-se o \n para quebra-la, um texto com %s/d/f e as variáveis que são os args
Além disso temos também a palavra reservada func (função/function), que podemos usar para criar várias funções com ou sem retorno. Uma delas é especial e única em seu programa a main() (principal), pois é aonde o seu software vai dar "arranque no motor".
Vemos também o import, que usamos para importar módulos e suas funcionalidades. O Go vai reclamar se você importar um módulo e não usar ele.
Curiosidades
- O for do Go também é while (sim ele não existe em go)
- Não tem operadores ternários (embora esteja em estudo)
- Para coisas públicas em módulos usamos a primeira letra maiúscula e para privado minúscula
Dicas de estudo e ferramentas
Se quiser explorar o Go você pode usar sites online como:
Sempre anote tudo que aprendeu em apps como Notion, Obsidian ou um caderno físico e pratique sempre.
Espero ter dado a você um pequeno gostinho e vontade de aprender Go! Até a próxima!



