Go - Type Switch
- switch x.(type) { case: 。。 default:..}
- No fallthrough is allowed

- Reuse assert type result. switch x := x.(type) {...}
- Can combine more than one type in a statement

- Not every expression can be in "case" statement, compile error when type is not matched
