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

2次阅读

共计 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{} 呈现的中央。

正文完
 0