我正在尝试使用辅助数组实现简单的合并排序。我有type byString []string
来实现Less, Swap, and Len
方法。它基本上遵循Go的sort
包的界面。
但是,我在选择将byString
切片复制到临时数组的最佳路径时遇到了一些困难。
请帮助我打破Java的多态性世界,使其与Go一起使用。
func merge(data Interface, lo, mid, hi int) {
i, j := lo, mid+1
// How do I copy data's elements to a new slice called aux?
}
答案 0 :(得分:0)
使用内置的copy
函数,您只需要将新切片声明为接口类型:
type Interface []string
func merge(data Interface, lo, mid, hi int) {
i, j := lo, mid+1
var aux Interface = make([]string, len(data), len(data))
copy(aux, data)
}