Pular para o conteúdo principal

Introdução ao Go

· Leitura de 6 minutos
Andrew Nation

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.