Go で一般的な配列/スライスの重複排除を作成する方法はあり[]int
ますか? ( http://rosettacode.org/wiki/Remove_duplicate_elements#Goから):
func uniq(list []int) []int {
unique_set := make(map[int] bool, len(list))
for _, x := range list {
unique_set[x] = true
}
result := make([]int, len(unique_set))
i := 0
for x := range unique_set {
result[i] = x
i++
}
return result
}
しかし、それを拡張して任意の配列をサポートする方法はありますか? 次のような署名付き:
func deduplicate(a []interface{}) []interface{}
私はあなたがその署名でその関数を書くことができることを知っていますが、実際にはそれを で使用することはできませ[]int
ん。この新しい配列を調べて、すべてを new に入れます。 []interface{}
[]int
[]interface{}
[]int
私の質問は、これを行うためのより良い方法はありますか?