go中any类型的使用详解
作者:考虑考虑
Go1.18新增any类型,替代interface{}用于表示未知类型,提升类型安全和代码清晰度,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
前言
在没有any类型之前,go语言中,我们经常使用interface{},来表示一个类型是未知的,或者有好几种其他基础类型的情况,但在go1.18
版本之后,新增了any
类型,用来代替interface{}
any使用
go使用any
使用
package main import "fmt" func say(data any) { switch data.(type) { case int: fmt.Println("int") case string: fmt.Println("string") } } func main() { say(123) }
输出结果为
any转换为类型
package main import "fmt" func say(data any) { switch data.(type) { case int: b := data.(int) + 1 fmt.Println(b) case string: fmt.Println("string") } } func main() { say(123) }
输出结果为
any用在map
package main import "fmt" func main() { m := make(map[string]any) m["a"] = 1 m["b"] = "aaa" for k, v := range m { fmt.Println(k, v) a, b := v.(int) fmt.Println(a, b) } }
输出结果为
总结
在go1.18之后,any
关键字可以作为开发使用,不过看个人
到此这篇关于go中any类型的使用详解的文章就介绍到这了,更多相关go any类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!