哪种New更符合Gopher习惯

root666 · · 734 次点击
我不太喜欢New函数带很多参数,一般我只传初始化需要的关键参数,New里面一般不做上面那种简单的逐个field赋值,而是初始化map,channel,slice等,以及设置各个field的默认值,在New返回后再逐个设置field,因为这样更清楚是给哪个field赋值 New带多个参数不好的地方就是不知道各个参数对应什么field,以及如果有新的field加入且这个filed只在很少的地方用到的情况下需要修改所有调用New的地方并传入无用的值 实际应用中这种有多个field需要赋值的情况也不会用New来传参,而是从什么数据源unmarshal进来
#2
更多评论
第一种更符合golang的编码风格
#1
还有,go里面面向对象继承的关键点在把Book定义成下面这样: type Book struct { BookBase author Author publisher Publisher category Category } 这样Book才有了BookBase的所有方法
#3