关于go:go语法入门any类型的使用场景与注意

一、介绍

在没有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{}呈现的中央。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理