因此,假设我们有以下形式的函数:
func WorkMagic(obj interface{}) interface{} {
switch t := obj.(type) {
case string:
// Do string magic
default:
// Do slice magic
}
...
}
我希望obj是一个字符串或一个切片,我可以通过开关确定。在切片的情况下,我希望能够对任何任意切片进行排序工作,而不管类型如何。似乎实现此目的的最佳方法是以与本文中讨论的方式类似的方式使用 unsafe 包。
然而,这里的函数接受特定类型的切片 ( []string),而我希望能够处理任何切片。所以问题是,鉴于我接受一个空接口作为输入,我如何使用 unsafe.Pointer 访问底层切片/数组,以便能够循环并修改哪个值与哪个索引关联?
相关分类