想到啥就写点啥

Go语言核心36讲-使用函数的正确姿势

前导内容:函数是一等的公民

在 Go 语言中,函数可是一等的(first-class)公民,函数类型也是一等的数据类型。这是什么意思呢?

简单来说,这意味着函数不但可以用于封装代码、分割功能、解耦逻辑,还可以化身为普通的值,在其他函数间传递、赋予变量、做类型判断和转换等等,就像切片和字典的值那样。

Go语言核心36讲-通道的高级玩法

首先来说说单向通道。我们在说“通道”的时候指的都是双向通道,即:既可以发也可以收的通道。

所谓单向通道就是,只能发不能收,或者只能收不能发的通道。一个通道是双向的,还是单向的是由它的类型字面量体现的。

还记得接收操作符<-吗?如果我们把它用在通道的类型字面量中,那么它代表的就不是“发送”或“接收”的动作了,而是表示通道的方向。比如:

Go语言核心36讲-字典的操作和约束

至今为止,讲过的集合类的高级数据类型都属于针对单一元素的容器。

它们或用连续存储,或用互存指针的方式收纳元素,这里的每个元素都代表了一个从属某一类型的独立值。

今天要讲的字典(map)却不同,它能存储的不是单一值的集合,而是键值对的集合。

左耳听风-Go语言编程模式:Go Generation

前言

Go 语言的代码生成主要还是用来解决编程泛型的问题。泛型编程主要是解决这样一个问题:因为静态类型语言有类型,所以,相关的算法或是对数据处理的程序会因为类型不同而需要复制一份,这样会导致数据类型和算法功能耦合。

我之所以说泛型编程可以解决这样的问题,就是说,在写代码的时候,不用关心处理数据的类型,只需要关心相关的处理逻辑。

泛型编程是静态语言中非常非常重要的特征,如果没有泛型,我们就很难做到多态,也很难完成抽象,这就会导致我们的代码冗余量很大。

© 2026 我想探索一下世界

Elegant theme by Shiro · Made by Acris with ❤️