golang 数组去重

来源:互联网 发布:怎么查看数据库ip 编辑:程序博客网 时间:2024/05/23 02:22
func main() {   t1 :=[]string{"hello", "", "world", "yes", "hello", "nihao", "shijie", "hello", "yes", "nihao","good","adsfasdf","asdfasdf","dddd","ssss"}   t2 := RemoveDuplicate(&t1)   fmt.Println(t2)      sort.Strings(t1)   t4:=RemoveDuplicatesAndEmpty(t1)   fmt.Println(t4)      sort.Strings(t1)   fmt.Println(Duplicate(t1))}func RemoveDuplicate(list *[]string) []string {   var x []string = []string{}   for _, i := range *list {      if len(x) == 0 {         x = append(x, i)      } else {         for k, v := range x {            if i == v {               break            }            if k == len(x)-1 {               x = append(x, i)            }         }      }   }   return x}func RemoveDuplicatesAndEmpty(a []string) (ret []string){   a_len := len(a)   for i:=0; i < a_len; i++{      if (i > 0 && a[i-1] == a[i]) || len(a[i])==0{         continue;      }      ret = append(ret, a[i])   }   return}func Duplicate(a interface{}) (ret []interface{}) {   va := reflect.ValueOf(a)   for i := 0; i < va.Len(); i++ {      if i > 0 && reflect.DeepEqual(va.Index(i-1).Interface(), va.Index(i).Interface()) {         continue      }      ret = append(ret, va.Index(i).Interface())   }   return ret}
原创粉丝点击