Outline do estudo do curso lançado pelo Elton Minetto.
https://www.youtube.com/watch?v=MNE_grboFPM&list=PL0qudqr7_CuStQUsf2vtHXMxOp5gl_ENc
Outline
- Linguagem open-source nascida dentro da Google.
- Linguagem com ‘Pedigree’ (autores são Ken Thompson, Rob Pike e Robert Griesemer).
- Criada para resolver problemas de tempo de compilação e aproveitar máquinas multicore.
- Direta, simples, clara, objetiva, tem apenas 25 palavras-chave/reservadas, com tipagem forte e estática.
- Recursos eficientes para programação concorrente (green-threads/lightweight-threads/goroutines).
- Dividida por pacotes onde funções que comecem com letra maiúscula são de escopo público enquanto funções que comecem com letra minúscula são de escopo privado.
- Funções podem retornar mais de um resultado.
- Erros são cidadãos de primeira classe, são retornados como se fossem valores da função (ao invés de lançados como exceções) e por convenção da comunidade Go, são o último valor retornado.
- Usar a palavra-chave
go
para criar uma Goroutine e executar uma função de forma concorrente.
- Usar canais para comunicação via passagem-de-mensagem entre Goroutines.
- Permite compilação entre sistemas e arquiteturas diferentes no mesmo host (cross-compilation)
- Orientação a objetos apenas via composição, não tem herança.
- VSCode é o editor mais usado e recomendado por ter um plugin mantido oficialmente pelo próprio time da Go na Google, mas a GoLand, da JetBrains, é a que tem mais recursos.
- A função
main
, no pacote main
, no arquivo (por convenção, chamado) main.go
é o ponto de entrada do programa.
- O operador
:=
é um sugar para declarar e atribuir ao mesmo tempo uma variável.
- Você pode usar o
_
para informar ao compilador que você não tem interesse em algum valor posicional.
go build
é o comando para compilar um programa. Você pode passar o argumento -o
para definir um output, exemplo: go build -o bin/program main.go