对Golang的一些看法

栏目: Go · 发布时间: 5年前

我断断续续的,无聊的时候会看一些Golang 的书,也会用它做一些小的Demo,我甚至还想去做一份Golang 的工作。

它的优点大家都知道,就是并发。Medium搜一下 go 会有一篇关于如何用go实现百万级的并发的文章,代码精髓又简单。

但是我想说说它的一些让人不爽的地方。

Swift有一个很重的概念就是面向协议,可以去看看各大Swift 的库,都很注重面向协议这个概念。Golang也是如此,只是说法是面向接口(interface).

但是Golang的面向接口不需要声明接口,这个真的很操蛋的。如果你去看代码,如果有用接口作为参数的话你就惨了。你根本不知道哪些Struct实现了那个接口。所以写Go的时候如果你不把那个接口和实现接口的Struct写在一起那简直就是灾难,对于那些习惯细致的读代码的人来说真的很痛苦,比如说我。不需要申明接口的另一个糟糕的地方就是你可能在写代码的时候,碰巧就实现了一个接口,如果那个Struct命名和你想用来实现接口的Struct的命名很像的话,很可能就被写成参数,后果就是一个Crash。

Golang 的面向接口是如此的粗糙与敷衍,Swift完全不会有这个问题。

Golang 没有实现泛型,所以写起代码来会束手束脚,这要我想起了被OC支配的恐惧。你可能需要写更多无聊的代码来实现一个功能。

Golang的一个方法返回值可以直接用在方法里面,不需要额外的声明。这样看似好酷的感觉,其实傻逼至极,你在写代码的时候会感到一种混淆的感觉,私以为老老实实的申明返回值然后再return会更友好。

Golang申明参数有一种方式。比如

x, y, z int

哇,这种申明方式真的很傻逼的,你会发线其它的语言也可以这样,这似乎就是一个一直沿用至今的错误(我个人认为)。Golang 发扬了这个错误,可以这样子写在方法的参数里面。这样子你会觉得x的类型是y,然后出现一个z,最后才发现都是int,会有一种被调戏的感觉。所以我一直觉得这种设计方式就是一个错误,因为人类都喜欢直观,简单,程序员也是如此。

Golang的Array和Map也是十分的古怪,读起来十分的不友好,不像Swift来的直观。尤其是Map里面是一个复杂的类型,那会是一个灾难。不一直长期的写的话,你会很不习惯它。

所以Golang真的只是一个实现工程的语言,比起和它出生差不多的Swift而言。它省了一些不该省的,创新了一些垃圾的语法。当Swift 加入了并发的语法更加的成熟之后,我不认为golang还会有现在的市场。


以上所述就是小编给大家介绍的《对Golang的一些看法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

电商产品经理宝典:电商后台系统产品逻辑全解析

电商产品经理宝典:电商后台系统产品逻辑全解析

刘志远 / 电子工业出版社 / 2017-10-1 / 49.00元

时至今日,对于产品经理的要求趋向业务型、平台型,甚至产生了细分领域专家。纯粹的前端产品经理(页面、交互)逐渐失去竞争力。而当后台产品经理的视野开始从功能延伸到模块,再延伸到子系统,最后关注整体系统时,就有了把控平台型产品的能力。 《电商产品经理宝典:电商后台系统产品逻辑全解析》围绕“电商后台产品”,从电商的整体产品架构入手,逐步剖析各支撑子系统。通过学习电商产品后台的架构和逻辑,可以让读者从......一起来看看 《电商产品经理宝典:电商后台系统产品逻辑全解析》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具