Aula 08 – Tutorial Golang – Switch

Aula 08 – Tutorial Golang – Switch

Tutorial Golang - Switch

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

É isso pessoal, fico por aqui.

Nos vemos na próxima aula, até mais. 🙂

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

Obrigado e bons estudos. 😉

About The Author
-

2 Comentários

  • gabriel
    Reply

    O link para a página 09 está quebrado, sempre volta para a página 8

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>