我感兴趣地阅读了一个关于如何在 Go 中创建映射键切片(使用范围循环)的问题,但是如何编写一个函数来为任何类型的映射执行此操作?映射值类型是一个特别麻烦的问题,因为它甚至不会影响结果切片的类型。
\n例如,我可以编写一个函数,将 map[int]T (其中 T 是任何类型)作为参数并返回 map\xe2\x80\x99s 键的 []int (整数切片)吗?如果\xe2\x80\x99s可能的话,是否可以使函数在map[T1]T2(其中T1和T2是任何类型)上运行并返回[]T1切片?也就是说,我该如何替换下面代码中的问号?我\xe2\x80\x99m猜测我需要一个接口,但我\xe2\x80\x99m对这些接口有点初学者。
\n func keys(m map[?]?) []? {\n var s []?\n k := range m {\n s = append(s, k)\n }\n return s\n }\nRun Code Online (Sandbox Code Playgroud)\n