Go 1.18 中的 Any 是啥?
发布时间:2021-12-07 03:05:22 所属栏目:语言 来源:互联网
导读:Go 1.18 因为泛型引入 any,这实际上是 interface{} 的别名: type any = interface{} 以下代码虽然不是泛型,但用 Go 1.18 可以正常运行,证明 any 和 interface{} 是一样的:(这里可以在线运行:https://gotipplay.golang.org/p/dPeNhe-7nkA) package main
Go 1.18 因为泛型引入 any,这实际上是 interface{} 的别名: type any = interface{} 以下代码虽然不是泛型,但用 Go 1.18 可以正常运行,证明 any 和 interface{} 是一样的:(这里可以在线运行:https://gotipplay.golang.org/p/dPeNhe-7nkA) package main import ( "fmt" ) // 这里的 any 并非泛型的约束,而是类型 func test(x any) any { return x } func main() { fmt.Println(test("a")) } 泛型中,any 换为 interface{} 也可以:(这里可以在线运行:https://gotipplay.golang.org/p/wKL3rKuldQX) package main import ( "fmt" ) // 注意其中的 T interface{},正常应该使用 T any func Print[T interface{}](s ...T) { for _, v := range s { fmt.Print(v) } } func main() { Print("Hello, ", "playgroundn") } 你也可以本地使用 tip 运行验证下。 可见,之所以引入 any 关键字,主要是让泛型修饰时短一点,少一些括号。any 比 interface{} 会更清爽~ (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读