作者回复: 👍
作者回复: 只有switch表达式可以用x.(type),类型断言的格式是类似像x.(*int)的形式,类型断言后面括号里必须是某个具体的类型。而switch表达式的x.(type)就是x.(type)。
作者回复: 但是如果按你的设计,fallthrough后,先要判断下一个case的条件,那么fallthrough的意义就不存在了,因为下一个case的条件求值后基本不会是true。
作者回复: 差不多。
作者回复: 后续会有实战项目,尽量串联吧。
作者回复: 👍
作者回复: 在这个case中: case case2_1(), case2_2(): println("exec case2")
作者回复: type switch是go的一种比较特殊的语法。能运用该语法的x.(type)中的x必须是interface类型。 case分支是用某类型与x的动态类型作比较。而v := x.(type)中的v存储的是转换后对应的动态类型的值。
作者回复: 问题没太看懂。文中例子switch x.(type) 中的x是一个interface{}类型接口,Go所有类型都实现了该接口,包括自定义类型T。
作者回复: switch的不是v。