Switch com Expressões
Parte da seção Fundamentos do Journey de GO da Coddy — lição 40 de 109.
Vamos aprender sobre expressões switch em Go, que nos permitem avaliar um valor diretamente na instrução switch.
Primeiro, vamos ver como usar uma instrução switch com uma expressão para verificar se um número é positivo, negativo ou zero:
num := -5
switch {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Após executar este código, o programa mostrará na tela:
Negative numberObserve que estamos usando switch { sem nenhum valor depois dele. Isso significa que o Go avaliará cada expressão case como uma condição booleana. Como num é -5, o segundo caso num < 0 é avaliado como verdadeiro, então "Negative number" é impresso.
Também podemos inicializar uma variável diretamente na instrução switch. Vamos ver como isso funciona:
switch num := -5; {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Após executar este código, obtemos o mesmo resultado:
Negative numberNeste exemplo, declaramos e inicializamos num diretamente na instrução switch. O ponto e vírgula separa a inicialização da expressão switch (que está vazia aqui). Isso torna nosso código mais compacto, mantendo a mesma funcionalidade.
Desafio
Inicianteswitch simples em Go. Você precisa completar o código para determinar a descrição de um dia com base em seu nome usando uma instrução switch.Uma variável
dayName já está definida com o valor "Wednesday". Sua tarefa é usar uma expressão switch para definir a variável description como:-
"Start of the week" para Monday-
"Midweek" para Wednesday-
"Almost weekend" para Friday-
"Weekend" para Saturday ou Sunday-
"Regular day" para qualquer outro diaFolha de consulta
Expressões switch em Go permitem que você avalie condições diretamente na instrução switch.
Use switch { sem valor para avaliar expressões booleanas em cada caso:
num := -5
switch {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Você pode inicializar uma variável diretamente na instrução switch usando um ponto e vírgula para separar a inicialização da expressão switch:
switch num := -5; {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Experimente você mesmo
package main
import "fmt"
func main() {
// O nome do dia já está definido
dayName := "Wednesday"
// Variável para armazenar a descrição
var description string
// TODO: Escreva uma instrução switch que defina a descrição com base no dayName
// Para Monday: "Início da semana"
// Para Wednesday: "Meio da semana"
// Para Friday: "Quase final de semana"
// Para Saturday ou Sunday: "Final de semana"
// Para qualquer outro dia: "Dia comum"
// Imprime o resultado
fmt.Printf("%s is %s\n", dayName, description)
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores de Comparação e Lógicos
Operadores de Comparação - Parte 1Operadores de Comparação - Parte 2Operador Lógico ANDOperador Lógico OROperador Lógico NOTFundamentos de Precedência de OperadoresRecapitulação - Fazendo Comparações7Fluxo de Controle: Loops
O Loop `for` ExplicadoLoop For - BásicoLoop For - Apenas CondiçãoA Palavra-chave `break`A Palavra-chave `continue`Loops AninhadosRecapitulação - Repetindo Ações2Variáveis e Tipos de Dados Básicos
O que é uma variávelInferência de Tipo com `:=`Inteiros (int)Números de Ponto FlutuanteBooleanosStringsValores ZeroConstantesConvenções de NomenclaturaRecapitulação - Variáveis e Tipos5Entrada/Saída Básica
Saída FormatadaVerbos de FormataçãoImprimindo TiposObtendo Entrada Básica do UsuárioRecapitulação - Entrada e Saída8Funções
Entendendo FunçõesDeclarando uma FunçãoChamando FunçõesParâmetros de FunçãoRetornando um Único ValorRetornando Múltiplos ValoresValores de Retorno NomeadosFundamentos de Escopo de FunçãoRecapitulação - Criando Código Reutilizável3Operadores Básicos
Operadores AritméticosOperador de DivisãoO Operador MóduloOperador de AtribuiçãoOperadores de Atribuição CompostaIncremento e DecrementoRecapitulação - Cálculos6Fluxo de Controle: Condicionais
A Instrução `if`A Palavra-chave `else`A Palavra-chave `else if`Sombreamento de Variáveis no `if`Inicializando VariáveisA Instrução `switch`Switch com ExpressõesSwitch sem ExpressãoA Palavra-chave `fallthrough`Recapitulação - Tomando Decisões