关于interface的疑惑

saxon134 · · 1024 次点击
第一个方案,就是评论区第二条兄弟提的方案,我在第三条评论有回复; 第二个方案,即意味着每个类似Dog的类型,都需要做一个convert接口,而且类型转化也是费存储的。 我这边考虑的场景是: 有很多类似Dog的类型,如鸡、鸭、鹅、小猫啥的,一般在上下文,我们用的数组类似是:[]Dog,而不会是[]eat 之后在一个通用的处理的地方,需要正确去识别数组类型,去调用相对应的eat。 通用处理,不可能去断言所有类型,因为不可能外面接口增加一种类型,通用接口增加一句断言,否则就失去通用的意义了。
#7
更多评论
如果把allBeginEat形参换成interface,参数可以传递; 但是在函数里进行断言的时候,[]eat跟[]Dog断言是失败的 这就很尴尬了。
#1
声明数组[]eat 数组里添加元素可以是Dog类型
#2