
Go 1.22中一个很大的变化是http.ServeMux
中的模式匹配,先前这个功能是很多第三方的web框架或者router库实现的。
我们很有必要好好研究它,将来在实现HTTP API的时候可能优先使用它。
Go 1.22中一个很大的变化是http.ServeMux
中的模式匹配,先前这个功能是很多第三方的web框架或者router库实现的。
我们很有必要好好研究它,将来在实现HTTP API的时候可能优先使用它。
Go 1.22 就要在龙年春节期间发布了。Go 1.22的新特性包括了新的 math/rand
包。这个包的目标是提供一个更好的伪随机数生成器,它的 API 也更加简单易用。本文将介绍这个新的包的特性。
有时候批量积攒一批数据集中处理,是一个高效的提高程序性能的方法,比如我们可以批量写入数据库,批量发送消息到kafka,批量写入网络数据等等。
批量把数据收集出来,我们常用channel类型,此时channel的功能就是一个buffer,多个生产者把数据写入到channel中,消费者从channel中读取数据,但是Go的channel并没有提供批量读取的方法,我们需要自己实现一个。
说起每个程序员必犯的错误,那还得是"循环变量"这个错误了,就连Go的开发者都犯过这个错误,这个错误在Go的FAQ中也有提到What happens with closures running as goroutines?:
Go 1.13 中errors包有了一些变化,这些变化是为了更好地支持Go的错误处理提案。Go 1.20中也增加了一个新方法,这个新方法可以代替第三方的库处理多个error,这篇文章将介绍这些变化。
因为原来的Go的errors中的内容非常的简单,可能会导致大家轻视这个包,对于新的变化不是那么的关注。让我们一一介绍这些新的方法。
最近我的同事在使用uber-go/ratelimit这个限流库的时候,遇到了两个大bug。这两个bug都是在这个库的最新版本(v0.3.0
)中存在的,而这个版本从7月初发布都已经过半年了,都没人提bug,难道大家都没遇到过么?