Мне интересно, почему в операторе переключения типа в 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!")
}
}