Esse post faz parte de uma série onde pretendo compartilhar o básico essencial para desenvolver com GoLang.
A maneira mais simples de entender variáveis é lembrar que um programa funciona com entrada -> processamento -> saída. Declarar variáveis é a forma que temos de reservar espaços em memória para armazenar as entradas de dados e permitir que processamento use essas variáveis e produza algum resultado como saída.
Declarando variáveis
Em Go existem algumas maneiras de fazer isso, todas elas tem um contexto e saber onde usar vai simplificar bastante seu código.
Utilizando var com tipo explicito
Esse é tipo de declaração que usamos no inicio de uma função, quando você declara esse tipo de variável você está deixando explicito o tipo da varíavel que nos blocos seguintes vai ter o seu valor modificado (ou não). Por exemplo:
package main
import (
"fmt"
"runtime"
)
func main() {
var valor int
if runtime.NumCPU() > 0 {
valor = runtime.NumCPU()
}
fmt.Println(valor)
}
Nesse código estou declarando a variável valor
de tipo int(ou seja, um número inteiro). E logo em seguida eu faço um processamento para atribuir um novo valor a essa variável.
Dica: você pode testar esse código no https://go.dev/play/
Criando e atribuindo de forma implícita
Criar variáveis implícitas é provavelmente o jeito mais fácil e prático, mas sempre se atente ao contexto. É muito comum elas serem usados dentro dos blocos, e elas normalmente são resultado da chamada a uma função ou do resultado de uma expressão, vamos ver nosso exemplo novamente:
package main
import (
"fmt"
"runtime"
)
func main() {
var valor int
if runtime.NumCPU() > 0 {
valor = runtime.NumCPU()
}
maiorQueDois := runtime.NumCPU() > 2
fmt.Println(valor, maiorQueDois)
}
Agora nós estamos criando a variável maiorQueDois
, ela é resultado da expressão runtime.NumCPU() > 2
e implicitamente o Go decide que o tipo dessa variável é bool
.
Grupos de variáveis
O última forma que vamos abordar é o grupo de variáveis:
package main
import (
"fmt"
"runtime"
)
func main() {
var (
valor = 4
categoria = "brabo"
)
if runtime.NumCPU() > 0 {
valor = runtime.NumCPU()
}
maiorQueDois := valor > 2
if valor <= 4 {
categoria = "mais ou menos"
}
fmt.Println(valor, maiorQueDois, categoria)
}
Grupos são uma combinação das duas formas, precisamos do var
, seguido de parêntesis e as variáveis separadas por linhas. No nosso caso valor
e categoria
.
Perceba, quando você cria um grupo você está expressando que essas variáveis tem alguma conexão, no meu exemplo a categoria
é dependente do valor
.
Resumo
- Declaração explicita é feita com
var
nomeVariaveltipo
- Declaração implícita utiliza
nomeVariavel
:=expressão
- Grupo de variáveis utilizam:
var (
nomeVariavel = `valor` ou `expressão`
)
- Go é uma linguagem muito simples e de poucos comandos, sempre que for usar um tipo de declaração tente expressar sua intenção. Simplicidade e expressividade!