Essa sequência de aulas irá te ensinar o básico sobre como desenvolver com Golang. Para isso, nós vamos utilizar um repositório no github onde eu vou colocar todos os arquivos que serão utilizados para desenvolver o projeto, assim como as explicações.

Expectativas

Nessa aula vamos aprender como baixar um pacote em Go, como receber valores do usuário e devolver valores na tela via CLI, além de como importar tanto pacotes internos quanto externos.

O termo CLI vem de Command Line Interface, você pode conhecer mais esse termo aqui.

Ponto de partida

Primeiros passos

Vamos começar criando o nosso arquivo principal:

touch main.go

Abra o main.go e adicione o seguinte código:

package main

import (
  "fmt"
)

func main() {
  fmt.Println("Hello, world!")
}

Para rodar o código:

go run main.go

Adicionando Barcode

Vamos utilizar a biblioteca boombuler/barcode para gerar QR codes.

Instale a biblioteca com:

go get github.com/boombuler/barcode

Atualize os imports do main.go:

import (
  "image/png"
  "os"
  "github.com/boombuler/barcode"
  "github.com/boombuler/barcode/qr"
)

Agora, vamos gerar um QR code:

input := "Hello, world!"
qrCode, err := qr.Encode(input, qr.M, qr.Auto)
if err != nil {
  panic(err)
}

Escalamos o QR code para um tamanho adequado:

qrCode, err = barcode.Scale(qrCode, 200, 200)
if err != nil {
  panic(err)
}

Criamos e salvamos o arquivo de saída:

file, err := os.Create("qrcode.png")
defer file.Close()
if err != nil {
  panic(err)
}

png.Encode(file, qrCode)

Para rodar o código e gerar o QR code:

go run main.go

Recebendo input do usuário

Modifique o código para receber uma string do usuário:

import "fmt"

var input string
fmt.Println("Enter your string: ")
fmt.Scanln(&input)

Conclusão

Agora seu código consegue gerar QR codes dinâmicos. Nas próximas aulas, vamos refatorar o código para melhorar sua organização.

Lista de aulas