golangのtypeswitchステートメントでフォールスルーが許可されないのはなぜか疑問に思います。
仕様によると、「タイプスイッチでは「フォールスルー」ステートメントは許可されていません。」これは、許可されない理由についてはあまり説明されていません。
添付されているコードは、typeswitchステートメントのフォールスルーが役立つ可能性があるシナリオをシミュレートするためのものです。
知らせ!このコードは機能せず、「タイプスイッチでフォールスルーできません」というエラーが発生します。タイプスイッチでフォールスルーステートメントを許可しない理由として考えられるものは何でしょうか。
//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!")
}
}