怎么清楚某个 API 是在哪个 Go 版本添加的?

因为 Go 的兼容性做的很好,很多人不太关心 Go 的具体版本。然而有时候可能会涉及到版本的问题,比如你想使用 strings.Builder,Go 版本就必须 >= 1.10,但以下代码在 Go1.10 却编译不通过。


  1. package main 
  2.  
  3. import ( 
  4.  "fmt" 
  5.   "strings" 
  6.  
  7. func main() { 
  8.   var b strings.Builder 
  9.   b.WriteString("polarisxu"
  10.   fmt.Println(b.Cap()) 

编译会报错:


  1. $ go version 
  2. go version go1.10.8 darwin/amd64 
  3. $ go run main.go 
  4. # command-line-arguments 
  5. ./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 就有了

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章