Почему в переключателе типа не разрешено прохождение?

Мне интересно, почему в операторе переключения типа в golang не разрешено прохождение.

Согласно спецификации :«Утверждение «fallthrough» не разрешено в переключателе типа.», что мало объясняет, ПОЧЕМУ это не разрешено.

Прилагаемый код предназначен для имитации возможного сценария, в котором могло бы быть полезно отступление в операторе переключения типа.

Уведомление! Этот код не работает, он выдает ошибку :"не удается пройти через переключатель типа". Мне просто интересно, какие возможные причины могли быть для того, чтобы не разрешить оператор fallthrough в переключении типа.

//A type switch question
package main

import "fmt"

//Why isn't fallthrough in type switch allowed?
func main() {
    //Empty interface
    var x interface{}

    x = //A int, float64, bool or string value

    switch i := x.(type) {
    case int:
        fmt.Println(i + 1)
    case float64:
        fmt.Println(i + 2.0)
    case bool:
        fallthrough
    case string:
        fmt.Printf("%v", i)
    default:
        fmt.Println("Unknown type. Sorry!")
    }
}
21
задан Karlek 17 July 2012 в 21:39
поделиться