共计 528 个字符,预计需要花费 2 分钟才能阅读完成。
一、介绍
在没有 any 类型之前,go 语言中,咱们常常应用 interface{},来示意一个类型是未知的,或者有好几种其余根底类型的状况。
从 Go1.18 开始,go 官网定义了一个预申明标识符 (Predeclared identifiers):any。
// any is an alias for interface{} and is equivalent to interface{} in all ways.
// any 是一个 interface{} 的 别名,并且在任何状况下和 interface{} 雷同。type any = interface{}
官网的定义,通知了咱们 any 就是 interface{} 的别名,用来代替 interface{} 的。
go 源码中当初也大量的应用 any 比方:
func Print(a ...any) (n int, err error)
func Println(a ...any) (n int, err error)
type Pointer[T any] struct
var expunged = new(any)
dirty map[any]*entry
func Marshal(v any) ([]byte, error)
......
太多中央用到了,基本上 go 官网,用 any 代替了任何 interface{} 呈现的中央。
正文完