对Golang的一些看法

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

我断断续续的,无聊的时候会看一些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的一些看法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

The Shallows

The Shallows

Nicholas Carr / W. W. Norton & Company / 2010-6-15 / USD 26.95

"Is Google making us stupid?" When Nicholas Carr posed that question, in a celebrated Atlantic Monthly cover story, he tapped into a well of anxiety about how the Internet is changing us. He also crys......一起来看看 《The Shallows》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具