DEV Community

Cover image for Primeiros passos com Golang!
William Koller
William Koller

Posted on • Updated on

Primeiros passos com Golang!

Como instalar golang no Linux Ubuntu

Iremos usar docker para rodar o golang na versão 1.12.0-alpine3.9

Criando Dockerfile com imagem golang:1.12.0-alpine3.9

Criando a pasta

mkdir first-steps-golang

Acessando a pasta

cd first-steps-golang

Criando Dockerfile

touch Dockerfile

FROM golang:1.12.0-alpine3.9 as builder

WORKDIR /build

COPY go.mod .

RUN go mod download

COPY . .

RUN go build -o main . 

FROM scratch

WORKDIR /build

COPY --from=builder /build .

CMD [ "./main" ]
Enter fullscreen mode Exit fullscreen mode

Criando o arquivo go.mod

touch go.mod

Na raiz do projeto terá um arquivo go.mod com esse conteúdo:

module calc

go 1.12
Enter fullscreen mode Exit fullscreen mode

Em seguida iremos criar a pasta calc

mkdir calc

E criaremos o arquivo de calc em go

cd calc && touch calc.go

Dentro do arquivo cal.go, criamos uma func de divisão.

package calc seria referente ao pacote de calc

package calc

func Division(a, b int) int {
    return a / b
}
Enter fullscreen mode Exit fullscreen mode

Iremos criar o arquivo main.go para executar o cálculo

touch main.go

Dentro do arquivo main.go

package main seria referente ao pacote main

Iremos importar o calc e fmt

package main

import (
    "calc/calc"
    "fmt"
)

func main() {
    var num1 int = 4
    num2 := 2
    result := calc.Division(num1, num2)

    fmt.Println(result)
}

Enter fullscreen mode Exit fullscreen mode

Em seguida iremos fazer o build da imagem em go, na raiz do projeto aonde o Dockerfile esta.

docker build -t williamkoller/first-steps-golang .

Rodaremos a imagem gerado com esse comando

docker run -t williamkoller/first-steps-golang

Resultado gerado
Image description

Agora iremos trabalhar com erros em Golang

No arquivo calc.go

Iremos adicionar uma tratativa de erro

Podemos notar que importamos o erros do golang e no returno estamos usando o nil (como se fosse um ponteiro).

package calc

import "errors"

func Division(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("denominator cannot be zero")
    }

    return (a / b), nil
}
Enter fullscreen mode Exit fullscreen mode

No arquivo main.go

Passa a ser assim:

package main

import (
    "calc/calc"
    "fmt"
)

func main() {
    var num1 int = 4
    num2 := 0
    result, err := calc.Division(num1, num2)

    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    fmt.Println(result)
}
Enter fullscreen mode Exit fullscreen mode

Iremos fazer o build da imagem novamente para ter essa nova versão de código

docker build -t williamkoller/first-steps-golang .

Em seguida rodar a nova imagem

docker run -t williamkoller/first-steps-golang

Com esse resultado:

Image description

Esse é o resultado gerado com docker e golang

Espero ter ajudado!

Oldest comments (4)

Collapse
 
jeanmamelo profile image
Jean Melo

Conteúdo muito bacana, parabéns, William!

Collapse
 
williamkoller profile image
William Koller

muito obrigado Jean!!

Collapse
 
1ilhas profile image
William Oliveira

Irmão, acho que, pra um primeiro passo, talvez seria melhor utilizar o compilador via terminal mesmo. Evitando a complexidade com o Docker. Depois você puxa outro artigo colocando o Docker (ou, no caso, cria um outro com esse mesmo assunto, mas sem o Docker e linka os dois textos pra gente <3).

Parabéns pelo conteúdo, mano!

Collapse
 
williamkoller profile image
William Koller

Fala irmão, muito obrigado pelas palavras.

fiz um tutorial utilizando o compilador do go segue:

dev.to/williamkoller/como-instalar...