Zettelkasten - Go Lang

Publicado em 03 de Fevereiro

Leitura de 3 minutos

Isso é o Zettelkasten, isso é basicamente um note-taking dos meus estudos. Será apenas consultado em revisões futuras.

Fique à vontade para usar como base de estudos, se necessário.

Primeira atualização: 03 de Fevereiro de 2026 Última atualização: 03 de Fevereiro de 2026


Instalação em GO via CLI - Facilitando a sua vida

Verifique a versão - Atualmente puxando 1.22.6

wget https://go.dev/dl/go1.22.6.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.6.linux-amd64.tar.gz && go version

package myPackage

func ExemploFunction() {} // Função/variável exportável
func exemploFunction() {} // Função/variável não exportável

O nome do pacote - se caso não for main, ele deverá ter o mesmo nome de pasta.

Se for criar um modulo, utilize go mod init _nome-do-mod e importe na main como import ("github.com/username/repo/module")

Se for fazer a build do projeto - criar um executável - utilize go build -o nome_da build


Podendo ser usado var se o valor for mutável ou const para valor imutável

var texto string = "value" // 1. Tipado
var texto = "value" // 2. Não tipado - mas main entende o tipo
var texto string // 3. Tipado e com valor inicial (text - null / number - 0)
texto := "value" // 4. Tipado automaticamente e valor inicial sendo value / declaração curta

fmt.Println(texto)

Quais são os tipos simples:

int - Inteiro (int (system size by processor), int8 - 8bits, int32 - 32bits, int64 - 64bits) float- Numéro com ponto flutuante (3.14) - float32 - 32bits / float64 - 64bits bool - Booleanos (true ou false - valor inicial é false) / var maior bool = 10 > 5 / return true string - Textos (Concat + Uppercase (fmt.Println(strings.toUpper(string))) ou Lowercase (fmt.Println(strings.toLower(string))) + FindWord (fmt.Println(strings.Contains(meet, "mundo")) // return true or false)

Como calcular a circunferência

var floatNumber float32 = 1.1
var pi float64 = 3.14
var raio float64 = 2.5
var area = pi * raio * raio

fmt.Printlm("floatNumber", floatNumber)
fmt.Printlm("Área do Circulo", area)

Se usassemos var pi float64 = 3.14 / var raio float32 = 2.5 / var result = pi + raio, ele daria erro por tentar somar float32 + float64.

Quais são os tipos compostos:

Array

var array [2]string
array[0] = 'hello'
array[1] = 'world

fmt.Println(array)
// return is [hello, world]

O tamanho de array é imutável.

Slice

var array []string
array = append(array, "new item")

fmt.Println(len(array)) // Verifica o tamanho do array, return is 1

fmt.Println(array)

Divisão de slice

var array []string
array = append(array, "first item", "second item", "third item")

fmt.Println(array[1:2]) // [second item]
fmt.Println(array[0:2]) // [first item, second item]
fmt.Println(array[2:0]) // [third item]

array = array[0:2] // still 0-2(-1) item
fmt.Println(array) // [first item, second item]

O tamanho de slice é indefinido (no limit). O append manterá o valor original e adicionará um novo.

Uso de Map

func main() {
    var pessoas = map[string]int{}

    pessoas["lais"] = 26
    pessoas["leo"] = 32

    fmt.Println(pessoas)
    // map[lais:26 leo:32]

    fmt.Println("lais") // 26
    fmt.Println("ricardo") // 0

    if idade, ok := pessoas["fabio"]; ok {
        fmt.Println("Pessoa existe no map", idade, ok) // ok is a bool
    } else {
        fmt.Println("Pessoa não existe no map")
    }

    delete(pessoas, "lais")
    fmt.Println(pessoas) // [leo:32]

Condicionais