Esse é um tutorial breve introdutório à linguagem de programação Go. Não vou detalhar muito, pois como acabei de dizer, é para ser um tutorial breve. Você pode conhecer mais sobre o Go visitando seu site oficial aqui. Além disso, caso você não queira instalar nada na sua máquina, pode usar o Playground online.
🔠️ PROGRAMA HELLO WORLD
package main
import "fmt"
func main() {
fmt.Println("Salve, AndrewNation sum!")
}
Esse é um exemplo de um programa simples em Go que imprime uma fase na tela. Todo programa em Go precisa de uma função main()
, a partir de onde inicia a execução do programa. Temos também a função Println()
que imprime um texto no console. Ele faz parte da biblioteca fmt
, que pode ser importado com a palavra reservada import
.
📕️ INTRODUÇÃO
Para instalar o Go no Ubuntu e derivados (eu uso o Linux Mint como SO principal), você pode usar o comando sudo apt-get install golang-go
e sudo dnf install golang
no Fedora. Depois de instalado, digite go version
no seu terminal. Se tudo estiver certo, você vai ver o número da versão instalada.
Dá para criar um arquivo Go no Linux e sistemas baseados no UNIX com o comando touch nome_do_arquivo.go
. Lembrando que a extensão deve ser sempre .go
. Você pode usar o editor de código de sua preferência, mas eu recomendo o Visual Studio Code, que pode ser instalado via snap em distros suportadas usando o comando sudo snap install code --classic
. Alternativamente você pode usar o VSCodium.
Por fim, para executar o arquivo Go, você pode usar o comando go run nome_do_arquivo.go
. Também dá para compilar e gerar um executável com go build
.
🔢️ VARIÁVEIS
Para criar uma variável, você usa a palavra chave var
, seguida do nome da variável e do tipo dela. Outra forma de declarar variáveis é usando o operador :=
. Nesse caso, o Go vai inferir automaticamente o tipo de dado com base no valor inicial.
package main
import (
"fmt"
"strconv"
)
func main() {
var num1 int = 19;
var num2 int = 25;
var msg string = "A soma é: ";
soma := num1 + num2;
fmt.Println(msg + strconv.Itoa(soma));
}
Observe que eu usei a função Itoa()
da biblioteca strconv
. Ela serve para converter um número inteiro para uma cadeia de caracteres. Observe também que eu usei ;
no final de cada declaração, mas saiba que ele é opcional em Go. Eu só coloquei por questão de preferência pessoal e também por estar acostumado a linguagens como C++ e Java onde é obrigatório terminar cada declaração com esse símbolo.
↔️ CONDIÇÕES
Aqui não vou detalhar muito, pois se você conhece lógica de programação e/ou alguma outra linguagem de programação, provavelmente sabe usar o if
. A única diferença entre o Go e outras linguagens como o C++, Java e TypeScript é que não existem os parênteses em volta da condição.
package main
import "fmt"
func main() {
num1 := 19;
num2 := 25;
soma := num1 + num2;
if soma > 55 {
fmt.Println("A soma é maior que 55");
} else {
fmt.Println("A soma é menor que 55");
}
}
As palavras principais usadas nas condicionais são if
, else
e else if
.
🔢️ ARRAYS
Criar arrays em Go não é muito diferente de outras linguagens de programação. Você define um tamanho e o tipo dos elementos que ela vai conter. Você também pode exibir seu conteúdo na tela com a função Println()
.
package main
import "fmt"
func main() {
//Criar um array do tipo string
var nomes [2]string
//Atribuir um valor a uma posição específica do array
nomes[0] = "Gabriel"
nomes[1] = "Eric"
//Exibir o conteúdo do array na tela
fmt.Println(nomes)
}
Ou alternativamente:
import "fmt"
func main() {
//Criar um array do tipo string
nomes := [2]string{"Gabriel", "Eric"}
//Exibir o conteúdo do array na tela
fmt.Println(nomes)
}
🔄️ LAÇOS DE REPETIÇÃO
Aqui não tem muito segredo. O exemplo abaixo provavelmente é bem familiar para você:
package main
import "fmt"
func main() {
/*
Esse código preenche o array com números
usando um laço de repetição for
*/
len := 24
var vetor [24]int
for i := 0; i < len; i++ {
vetor[i] = (i+2)*i - 2
}
fmt.Println(vetor)
}
MAPAS
O Go também possui mapas e neles você pode salvar pares de valores e chaves. Para criar o mapa usamos a função make
. No mapa, definimos o tipo do valor que vai ser a chave e depois o tipo dos valores que cada uma das chaves vai guardar. Para atribuir um valor a uma chave, fazemos isso da mesma forma que atribuímos um valor a uma posição de um array.
package main
func main() {
dicionario := make(map[string]string)
dicionario["ignis"] = "fogo"
dicionario["vir"] = "homem"
dicionario["silva"] = "floresta"
dicionario["domus"] = "casa"
dicionario["scæna"] = "cena"
}
Também é possível fazer loop num mapa usando um laço de repetição:
package main
import "fmt"
func main() {
dicionario := make(map[string]string)
dicionario["ignis"] = "fogo"
dicionario["vir"] = "homem"
dicionario["silva"] = "floresta"
dicionario["domus"] = "casa"
dicionario["scæna"] = "cena"
fmt.Println("DICIONÁRIO LATIM-PORTUGUÊS")
for key, value := range dicionario {
fmt.Println(key + ": " + value)
}
}
Para deletar uma das chaves de um mapa, usa-se a função delete()
, passando para ela como parâmetros o nome da variável do mapa e a chave que você quer deletar.
⚙️ FUNÇÕES
Uma função em Go é declarada com a palavra reservada func
, seguida do nome dela, dos parâmetros que ela recebe e o tipo de retorno dela. Exemplo:
package main
import "fmt"
func main() {
fmt.Println(soma(10, 16))
}
//Uma função que recebe dois números inteiros
//E retorna a soma deles, que também é um inteiro
func soma(x int, y int) int {
return x + y
}
Ainda faltou explicar os slices, os structs e os temidos ponteiros, mas esse assuntos fogem do escopo deste tutorial, que era para ser o mais simples possível. Mas não se preocupe, esses assuntos podem ser facilmente encontrados na internet ou na documentação oficial da linguagem.