总结

我最近听说 Go 被描述为一个枯燥的语言。枯燥是因为很容易去学,很容易写,以及最重要的,易读。或许,我确实认为这个实现不太好,毕竟,我确实花了三章讨论类型和如何声明变量。

如果你有静态类型语言的工作经历,我们所看到的内容仅仅只是一个复习。Go 使得指针可用性增强,并且切片是数组的包装,对于经验丰富的 Java 或 C#开发人员来说可能并不算是压倒性优势。

如果你曾经大多在使用动态语言,你可能会感到有点不同。它是一个值得学习的东西。其中最重要的是声明和各种初始化的语法。尽管我是 Go 的粉丝,Go 尽管也在简单性方面取得了一些进展,但它并不简单。不过,它归纳为一些基本的规则(比如你只能声明变量一次以及 := 确实声明了变量)以及基本理解(比如 new(X) 或者 &X{} 仅仅只是分配内存,但是切片,映射以及通道需要更多的初始化,所以用 make)。

除了这些,Go 给了我们简单但有效的方式组织我们的代码。接口,基于返回的错误处理,用于资源管理的 defer以及实现组合的简单方式。

最后但也最重要的是内置并发支持。关于 协程 ,除了有效和简单(无论如何简单易用)之外,几乎没有什么可说的了。这是一个很好的抽象。 通道 更为复杂。我一直认为在使用高级包装器之前先理解最基本使用方法。我认为不通过 通道 学习并发编程是很有用的。但是,对我来说,我觉得 通道 的实现方式不像一个简单的抽象。它们几乎都是自己的基本构件。我这样说是因为它们改变了你编写和思考并发编程的方式。 鉴于并发编程有多么困难,这绝对是一件好事。

热门教程

最新教程