深入浅出Go语言编程
上QQ阅读APP看书,第一时间看更新

3.2.4 类型别名

Go语言支持使用语法“type 别名 = 数据类型”为数据类型指定别名。类型别名只会在代码中存在,在编译完成后该别名就不存在了。

在Go1.7版本之前,golang.org/x/net/context包实现了上下文(Context)功能,并将其广泛应用于并发编程。但从Go1.7版本开始,golang.org/x/net/context包被纳入标准库,这导致在标准库中出现了context包和golang.org/x/net/context包共存的问题。该问题表现为在代码中使用标准库中的context包时,无法直接调用依赖于golang.org/x/net/context包实现的方法。为了解决这个问题,在Go1.9版本中引入了类型别名(type alias),这样就可以通过将golang.org/x/net/context包中的Context对象定义成标准库中context包的别名,来让新、旧Context类型共存,从而消除了潜在的兼容性问题。这使得开发人员能够逐渐过渡为使用标准库中的context包,同时也保持了旧代码和库的兼容性。