goLang 类型断言 type assertion

soledad ·
我越来越觉的中国人学程序语文化了!我不认为"类型断言的必要条件就是x是接口类型,非接口类型的x不能做类型断言:"这句话死记硬背有什么好处,如果你换个角度你会发现世界多美好!什么是断言,断言是断定某个大类型是某个小类型,那么如果断言成功可以理解这个大类型一定会是小类型的父类,如果失败的话,这个大类型一定不是这个小类型的父类,但是无论成功与否,这个大类型一定是不跟小类型同辈,你见过有2个不同小类型的类型需要断言么?不同辈分的类型才需要断言,而不是在同辈分 的类型上进行断言,而go中有2种辈分的类型,一个是大类型的接口,一个是小类型的struct, 注意string,int,chan其实本质是struct类型,是小类型,所以这就很好的解释了为什么类型断言的是接口,而不是非接口了,假如给接口加个父类,组成三个辈分的类,那么断言就可以是接口类型和接口类型的父类了!
#1