前言
在没有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关键字可以作为开发使用,不过看个人