CodeGym /Cursos /Go SELF /Introducao as variaveis em Go

Introducao as variaveis em Go

Go SELF
Nível 1, Lição 3
Disponível

1. Variaveis e caixas

Variaveis sao essas coisas especiais para armazenar dados. Quaisquer dados. Em Go, os dados no programa sao armazenados com a ajuda de variaveis. No fundo, uma variavel lembra mais uma caixa: uma caixa comum.

Digamos que voce escreveu em um papel o numero 13 e colocou esse papel dentro de uma caixa. Agora podemos dizer que a "caixa armazena o valor 13".

Toda variavel em Go tem tres propriedades importantes: tipo, nome e valor.

Nome e usado para distinguir uma variavel de outra. E como o rotulo em uma caixa.

Tipo da variavel define o tipo de valores/dados que ela pode armazenar. Na caixa de bolo, guardamos bolo; na caixa de sapatos, guardamos sapatos, e assim por diante.

Valor e algum dado ou informacao armazenada na variavel.

Cada valor na linguagem Go tem seu proprio tipo. Por exemplo, podem existir estes tipos de dados: numero inteiro, numero decimal, texto, tipo Gato, tipo Casa, etc.

Cada variavel (caixa) tambem tem seu proprio tipo. Uma variavel pode armazenar apenas valores do mesmo tipo que ela. Caixas diferentes sao usadas para armazenar coisas diferentes: caixa de doces, caixa para uma duzia de ovos, e assim por diante. Tudo como na vida real.

2. Criando uma variavel

Na linguagem Go, para criar uma variavel, costuma-se usar uma instrucao do tipo:

var nome tipo
Declaracao de variavel

Onde tipo e o tipo da variavel (ele corresponde ao tipo de valores que a variavel podera armazenar). E nome e o nome da variavel.

Exemplos:

Criacao de variavel: primeiro o nome, depois o tipo. Descricao
var a int
Criamos uma variavel chamada a do tipo int.
var s string
Criamos uma variavel chamada s do tipo string.
var c float64
Criamos uma variavel chamada c do tipo float64.

Os dois tipos mais usados sao numeros inteiros (indicados pela palavra int) e texto (indicado pela palavra string). Tambem e popular o tipo float64 — numeros decimais (reais).

3. Atribuicao

Como ja foi dito acima, uma variavel tem nome, tipo e valor. Ja entendemos nome e tipo, mas e o valor? Como colocar um valor em uma variavel?

Para colocar um valor em uma variavel, existe uma operacao especial — a operacao de atribuicao. Ela copia o valor de uma variavel para outra. Nao transfere, e sim copia. Como um arquivo no disco. A atribuicao fica assim:

nome = valor
Operacao de atribuicao

Onde nome e o nome da variavel, e valor e o valor que sera colocado na variavel. Como valor, pode aparecer um valor concreto, o nome de outra variavel ou ate alguma expressao usando variaveis.

Exemplos:

package main

import "fmt"

func main() {
	var i int        // A variavel i e criada
	var a, b int     // As variaveis a, b sao criadas
	var x int        // A variavel x e criada

	i = 3            // O valor 3 e colocado na variavel i.

	a = 1            // O valor 1 e colocado na variavel a.
	b = a + 1        // O valor 2 e colocado na variavel b.

	x = 3            // O valor 3 e colocado na variavel x.
	x = x + 1        // Nesta linha, o valor de x aumenta em 1; x agora e igual a 4.

	fmt.Println(i, a, b, x)
}

O sinal de igual

Para a operacao de atribuicao, usa-se o sinal de igual =. Isso nao e comparacao, nem igualdade. E exatamente a instrucao de copiar o valor a direita do sinal de igual para a variavel que esta a esquerda. Para comparacao, a linguagem Go usa o igual duplo ==.

4. Declaracao curta de variaveis: :=

Existe uma maneira ainda mais simples de criar uma variavel — a declaracao curta :=. Ela e lida mais ou menos assim: "crie uma variavel e coloque este valor nela". Nesse caso, o Go determina sozinho o tipo da variavel pelo seu valor: se a direita ha uma string, entao a variavel e do tipo string; se for um numero sem ponto, entao e inteiro, e assim por diante.

package main

import "fmt"

func main() {
	appName := "SuperApp"
	fmt.Println("App:", appName) // App: SuperApp
}

Isso e exatamente uma declaracao de variavel; voce nao pode mudar o tipo da variavel depois de cria-la. Este codigo nao vai funcionar:

func main() {
	appName := "SuperApp"
	appName := 123 		// vai haver um erro - a variavel appName ja foi criada
}

Outro ponto pratico a favor de := no comeco: ele reduz o "ruido" no codigo. Voce nao precisa escrever o tipo toda vez quando ele e obvio. E isso nao e um truque, mas uma abordagem oficial do Go.

5. Nome da variavel: o que pode e o que nao pode

Estes sao alguns fatos uteis para voce saber ao criar variaveis:

  • O nome da variavel pode ser qualquer um (por exemplo, temperature, score, userAge).
  • Mas ha restricoes — ele nao pode comecar com um numero e nao pode coincidir com palavras reservadas do Go (por exemplo, nao e possivel chamar uma variavel de var ou if).
  • Nao pode conter caracteres especiais, exceto _.
  • O nome diferencia letras minusculas e maiusculas (Age e age sao variaveis diferentes).
  • Normalmente se usa o estilo camelCase: a primeira letra e minuscula, depois cada palavra vem com inicial maiuscula (userAge, maxScore).

Exemplos de nomes permitidos:

package main

import "fmt"

func main() {
	x123 := 1
	koteyka := "Murka"
	PI := 3.14
	MAIN_PATH := "c:/"

	fmt.Println(x123, koteyka, PI, MAIN_PATH)
}

Exemplos de nomes proibidos:

var 1first = 1          // o nome nao pode comecar com um numero
var number# = 25        // o simbolo # nao pode ser usado no nome
var name" = "John"      // aspas no nome nao sao permitidas
var pi+e = 5.123        // o nome nao pode conter +

Todo o resto voce vai aprender nas proximas licoes. E agora uma pergunta de logica: em quantos passos e possivel colocar um gato dentro de uma caixa?

6. Gatos e caixas

Como pegar um gato:

  1. Pegue uma caixa vazia.
  2. Espere.

Piada 🙂

Bem, talvez seja possivel enfiar quantos gatos quiser em uma caixa, mas em uma variavel so e possivel colocar um unico valor. E isso que vai estar ligado as tarefas futuras.

7. Breve historia do Go

Para entender algumas coisas em Go, tambem e util voltar um pouco no tempo — mas nao a um unico "antepassado", e sim a dor real de grandes empresas: bases de codigo enormes, maquinas com varios nucleos, servicos de rede e a necessidade de construir e manter projetos rapidamente durante anos.

O Go comecou a ser desenvolvido no Google em 2007. Os autores sao Robert Griesemer, Rob Pike e Ken Thompson. O objetivo deles era bastante pragmatico: aumentar a velocidade de desenvolvimento e a facilidade de manutencao do codigo em um mundo em que um "programa comum" ja nao e uma pequena utilidade, mas um grande servico com rede, paralelismo e uma grande quantidade de dependencias.

Outro motivo importante em especial (que os proprios autores costumam mencionar): eles nao gostavam da complexidade do C++ e de quanto tempo e energia eram gastos "lutando com a linguagem" em vez de resolver o problema. E queriam criar um substituto para ela. Por isso, o Go foi pensado como uma linguagem com sintaxe simples, ferramentas rapidas e "uma unica maneira obvia" de fazer as coisas.

Go 1.0 foi lancado em marco de 2012 e, desde entao, evolui regularmente com lancamentos duas vezes por ano. Por exemplo, Go 1.25 foi lancado em 12 de agosto de 2025 e, como os autores destacam, chegou "seis meses depois do Go 1.24" — um bom indicador do ritmo das atualizacoes.

E importante entender: o Go nao tentou ser "uma linguagem para todos os casos" com dez estilos para escolher. Ele escolheu conscientemente a simplicidade e a previsibilidade: pacotes claros, um formato unico de codigo, uma biblioteca padrao forte e ferramentas convenientes "prontas para usar". E a concorrencia (goroutine/channel) e o gerenciamento seguro de memoria (GC) o tornaram especialmente conveniente para servidores, programas de rede e infraestrutura.

Nao precisamos estudar toda a historia do Go. Vamos programar em Go moderno (no seu curso — Go 1.25) e manter um estilo pratico: codigo claro, verificacoes de erro antecipadas, minima magia e maximo de legibilidade.

1
Tarefa
Go SELF, nível 1, lição 3
Bloqueado
Olá, console
Olá, console
1
Tarefa
Go SELF, nível 1, lição 3
Bloqueado
Duas mensagens
Duas mensagens
1
Tarefa
Go SELF, nível 1, lição 3
Bloqueado
Linha do placar
Linha do placar
1
Tarefa
Go SELF, nível 1, lição 3
Bloqueado
Desconto no recibo
Desconto no recibo
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION