因为 Go 的兼容性做的很好,很多人不太关心 Go 的具体版本。然而有时候可能会涉及到版本的问题,比如你想使用 strings.Builder,Go 版本就必须 >= 1.10,但以下代码在 Go1.10 却编译不通过。
- package main
- import (
- "fmt"
- "strings"
- )
- func main() {
- var b strings.Builder
- b.WriteString("polarisxu")
- fmt.Println(b.Cap())
- }
编译会报错:
- $ go version
- go version go1.10.8 darwin/amd64
- $ go run main.go
- # command-line-arguments
- ./main.go:11:15: b.Cap undefined (type strings.Builder has no field or method Cap)
提示 strings.Builder 类型没有 Cap 字段或方法。
所以,你知道标准库中哪个 API 是什么版本引入的吗?或者更实际的是,我当前的版本是否能使用某个 API。
01 常见的两种方式
在 Go 官网有最新稳定版本的标准库文档。从 Go1.11 版本开始,在标准库中,每个类型、函数或方法有加入的版本信息,如果没有,表示 Go1.0 就有了