一、介绍
在没有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{}呈现的中央。
发表回复