求教一下如今增加的对泛型的支持在实际使用中带来了啥?
学了一套下来个人感觉只是对原本的空interface增加了一点定义时的约束,可以更细致的限定传参时的类型,但是真到处理逻辑时原本代码会怎样断言、怎样按反射出的类型走不同分支处理就还是怎样做。
所以泛型的加入就只是多了这么点作用吗?除此之外还有其他吗?
更多评论
我的感觉就是泛型只适合特定逻辑,例如泛型一出来,GitHub上马上开源了好多泛型版本的工具,供你调用,因为这些工具的需求是固定的。个人感觉项目业务上不太适合用泛型,除非你真的知道你的逻辑需要泛型。我现在就是用一些工具方法,调用现成泛型库,项目内的业务还是interface{}一把梭,因为我不清楚我这逻辑改为泛型后以后会不会出问题,interface{}最保险。
#1
还有就是不同类型操作不统一的时候,使用泛型反而让代码不好写。而用interface{}时可以用断言走不同switch逻辑,比如我要对int和float64转换为字符串,这两种类型转换字符串代码不一样,就做不了泛型,除非你用`fmt.Sprint()`,不然还是没有interface{}加断言方便。
#3