Fácil Go
Zero values na prática
Enunciado
Declare três variáveis usando var sem inicializá-las: uma do tipo int, uma string e uma bool. Imprima cada uma e seus respectivos zero values.
Requisitos
- Usar
varpara declarar as três variáveis. - Imprimir os valores no formato:
int: 0,string:(vazio),bool: false. - Não usar
:=para essas variáveis.
Código inicial
package main
import "fmt"
func main() {
// declare as variáveis aqui
}
Saída esperada
int: 0
string:
bool: false
Ver dica
Lembre-se: var x int já inicializa com 0. Para string, o zero value é uma string vazia.
Mostrar solução
package main
import "fmt"
func main() {
var i int
var s string
var b bool
fmt.Printf("int: %d\n", i)
fmt.Printf("string: %s\n", s)
fmt.Printf("bool: %t\n", b)
}
Passo a passo
- Declaramos
var i int— como não atribuímos valor,irecebe o zero value0. - Declaramos
var s string— o zero value de string é""(string vazia). - Declaramos
var b bool— o zero value de bool éfalse. - Usamos
fmt.Printfcom os verbos%d,%se%tpara imprimir cada tipo corretamente. - A saída mostra os zero values na ordem:
0, linha vazia,false.
Por que funciona
Em Go, toda variável declarada sem valor explícito é inicializada com seu zero value. Isso garante que não existam valores indefinidos e que o programa tenha comportamento previsível. O uso de var sem inicialização é a forma mais clara de demonstrar esse conceito.
Erros comuns
- Esquecer o
%tpara bool: usar%vtambém funciona, mas%té o verbo específico para bool. Se usar%dcom bool, o compilador acusa erro de tipo. - Achar que string vazia imprime algo:
fmt.Println(s)imprime uma linha em branco; é o esperado. - Tentar usar
:=sem valor:i :=não compila;:=exige pelo menos uma variável à esquerda e uma expressão à direita.
Outra forma de resolver
Poderia usar fmt.Println diretamente:
fmt.Println("int:", i)
fmt.Println("string:", s)
fmt.Println("bool:", b)
Mas a saída teria espaços extras e não mostraria a string vazia de forma tão explícita.
Saída esperada
int: 0
string:
bool: false