Para fazermos escolhas da linguagem de programação Go, utilizamos o comando switch que possui sua
sintaxe apresentada abaixo.
Fig. 1: Comando switch
 |
Sintaxe
switch valor {
case caso1:
//seu trecho de código aqui
//break opcional
case caso2:
//seu trecho de código aqui
//break opcional
case casoN:
default: //opcional
}
Onde
valor: argumento que desejamos verificar se existe algum caso associado.
Podem conter valores numérico, texto.
caso1..casoN: são os casos que desejamos comparar com o valor. Se o resultado for verdadeiro, o trecho de
código dentro do caso é executado.
Diferente de outras linguagens como C/C++, Java e C# e outros, em Go o comando
break é opcional para interromper a execução de um case do comando switch.
Para ver como funciona o comando break visite Comando Break.
O caso default é opcional. Com esse caso, podemos executar algum trecho de código caso o valor não seja igual
a algum dos valores da cláusula case.
Exemplo 1
package main
import "fmt"
func main() {
valor := 3
switch valor {
case 1:
fmt.Println("1")
case 2:
fmt.Println("2")
case 3:
fmt.Println("3")
default:
fmt.Println("não encontrado")
}
}
Saída
3
Como mencionado na sintaxe acima, a linguagem Go, permite o uso do comando switch com strings e outros tipos de dados.
Exemplo 2
package main
import "fmt"
func main() {
valor := "tres"
switch valor {
case "um":
fmt.Println("1")
case "dois":
fmt.Println("2")
case "tres":
fmt.Println("3")
default:
fmt.Println("não encontrado")
}
}
Saída
3
Para a execução de um mesmo trecho de código para mais de uma case, basta adicionar as cláusulas case em
sequência ou um abaixo do outro separados por (:).
Exemplo 3
package main
import "fmt"
func main() {
valor := "tres"
switch valor {
case "um":
case "dois":
fmt.Println("2")
case "tres":
fmt.Println("3")
default:
fmt.Println("não encontrado")
}
}
Saída
2