Aula 08 - Tutorial Golang - Switch
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Esse é o link do código fluente no Pinterest
Meus links de afiliados:
Melhore seu NETWORKING
Participe de comunidades de desenvolvedores:
Fiquem a vontade para me adicionar ao linkedin.
Código final da aula:
Toti:
Backing track / Play-along:
Código Fluente
Putz!
Aula 08 - Tutorial Golang - Switch
As instruções switch expressam condicionais em muitos ramos.
O
primeiro switch é um exemplo bem simples que escreve o número 2 por extenso, ou seja, caso
i seja
2 a saída será:
dois.
O
segundo switch é verificado se o dia da semana é
sábado ou
domingo, através do método
Weekday().
Se for, vai imprimir:
"It's the weekend"
Se não for, a execução vai cair no
default e vai imprimir:
"It's a weekday".
Note o uso de
vírgulas para separar várias expressões na mesma instrução
case.
O
terceiro switch, através do método
now() é verificado se a hora atual é
menor que
12, se for, vai imprimir:
"It's before noon".
Se não for, vai cair no
default e vai imprimir:
"It's after noon".
O
quarto e último
switch compara tipos em vez de valores.
Você pode usar isso para
descobrir o tipo de valor de uma
interface.
Neste exemplo, a variável
t terá o tipo correspondente à sua
cláusula.
A parte em
laranja, é a chamada para o último switch, que vai imprimir:
I'm a bool
I'm an int
Don't know type string
Interface
As
interfaces no
Go não impõem um tipo para implementar métodos.
Um tipo pode escolher implementar métodos de uma interface.
As interfaces tornam o código mais flexível, escalável e é uma forma de obter polimorfismo em Golang.
Em vez de exigir um tipo específico, as interfaces permitem especificar apenas alguns comportamentos necessários.
Código
Go/07-switch/switch.go
package main
import (
"fmt"
"time"
)
func main() {
i := 2
fmt.Print("Write ", i, " as ")
switch i {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
}
switch time.Now().Weekday() {
case time.Saturday, time.Sunday:
fmt.Println("It's the weekend")
default:
fmt.Println("It's a weekday")
}
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("It's before noon")
default:
fmt.Println("It's after noon")
}
whatAmI := func(i interface{}) {
switch t := i.(type) {
case bool:
fmt.Println("I'm a bool")
case int:
fmt.Println("I'm an int")
default:
fmt.Printf("Don't know type %T\n", t)
}
}
whatAmI(true)
whatAmI(1)
whatAmI("hey")
}
E pra executar é só entrar na pasta onde tá o arquivo switch.go e digitar:
go run switch.go
É isso pessoal, fico por aqui.
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Esse é o link do código fluente no Pinterest
Meus links de afiliados:
Obrigado e bons estudos. ;)