08月06, 2019

吐槽Go again

Go这个语言实在是有点让人难以评价。优点不少,坑同样很多。

Go的指针解引用可以省略的写法,让代码充满了迷惑性。正所谓正确的标点符号有助于提高阅读效率,清晰的语法也可以提高程序的阅读效率,同时减少犯错的可能。

Go内置类型有些采用值传递,有些采用引用传递,容易对人产生误解:map是引用传递而sync.Map是值传递,使用sync.Map时必须使用指针;slice虽然是引用传递,但append如果让slice扩容则不会修改原变量……类似的例子还有很多。

总之,Go是个快糙猛的语言,确实适合写业务逻辑,反正不需要所有人都完全搞清楚你的那坨逻辑,差不多知道意思就行了;编译不过改就是了,随便改改差不多也就没问题了,不需要你成为一个Go专家。但是,如果是写一些稍微底层一点的服务,还是C++、Java、Rust靠谱。

2019-08-13 UPDATE: 今天发现govendor更新的时候,项目中如果只import了某个库的一部分,那没用到的不会放在项目的vendor目录里,不过在$GOPATH/.cache里是有的。

本文链接:https://diary.fanzheng.org/post/2019-08-06.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。