Aula 08 – Tutorial Golang – Switch
Aula 08 – Tutorial Golang – Switch
Página principal do blog
Todas as aulas desse curso
Aula 07 Aula 09
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:
Hostinger
Digital Ocean
One.com
Melhore seu NETWORKING
https://digitalinnovation.one/
Participe de comunidades de desenvolvedores:
Fiquem a vontade para me adicionar ao linkedin.
E também para me seguir no https://github.com/toticavalcanti.
Código final da aula:
https://github.com/toticavalcanti
Toti:
https://www.youtube.com/channel/UCUEtjLuDpcOvR3mIUr-viOA
Backing track / Play-along:
https://www.youtube.com/channel/UCT3TryVMqTqYBjf5g5WAHfA
Código Fluente
https://www.youtube.com/channel/UCgn-O-88XBAwdG9gUWkkb0w
Putz!
https://www.youtube.com/channel/UCZXop2-CECwyFYmHbhnAkAw
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
O link para a página 09 está quebrado, sempre volta para a página 8
Obrigado Gabriel,
Corrigido!
\o/