大家好,我是polarisxu。Go1.18引入了any是因为泛型类型,其实是interface{}的别名:typeany=interface{}下面的代码虽然不是泛型,但是在Go1.18下可以正常运行,证明any和interface{}是同样:(这里可以在线运行:https://gotipplay.golang.org/p/dPeNhe-7nkA)packagemainimport("fmt")//这里的any不是泛型约束,而是一个类型functest(xany)any{returnx}funcmain(){fmt.Println(test("a"))}泛型中,any可以换成interface{}:(可以在这里在线运行:https://gotipplay.golang.org/p/wKL3rKuldQX)packagemainimport("fmt")//注意Tinterface{},TanyfuncPrint[Tinterface{}](s...T){for_,v:=ranges{fmt.Print(v)}}funcmain(){Print("Hello,","playground\n")}也可以使用提示在本地运行验证。可以看出,之所以引入any关键字,主要是为了让泛型修改时间更短,括号更少。any比interface{}更清爽~另外,如果你想在项目中进行替换,可以通过gofmt将interface{}更改为any:gofmt-w-r'interface{}->any'./。..
