golang切片内存应用技巧详解

2020-01-28 14:25:35丽君


input[low:high:max]

最后一个 max 的作用是,生成的切片的cap(容量)为max - low。

原地去重(只针对可比较的切片类型)


import "sort"

func main() {
 in := []int{3,2,1,4,3,2,1,4,1} // any item can be sorted
 sort.Ints(in)
 j := 0
 for i := 1; i < len(in); i++ {
    if in[j] == in[i] {
      continue
 }
 j++

 in[j] = in[i]
 }
 result := in[:j+1]
 fmt.Println(result) // [1 2 3 4] 
}

文章中部分例子来自golang 官方的 GitHub 的 wiki ,在这个 wiki 里介绍了很多的切片使用技巧,了解更多可以访问golang 的 GitHub Wiki https://github.com/golang/go/wiki/SliceTricks#filtering-without-allocating

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。