Switch Type

Um switch de tipo é como uma instrução switch regular, mas os cases especificam tipos (não valores) que são comparados com o tipo do valor mantido pelo valor de interface fornecido.


switch v := i.(type) {
case string:
    fmt.Println(v)
case int:
    fmt.Println(v+2)
}
                        

O type assertion acontece implicitamente para o tipo correto na hora da definição da variável v. Lembrando que usar a notação i.(type) só é válida dentro de um switch.

switch_type.go