go语言常用函数

  • append

  append:在切片末尾添加元素并返回结果。append函数原型:func append(slice []T, elements...T) 。其中T表示任意类型。

  示例1:

1     arr1 := []int{1, 2, 3}
2     arr2 := append(arr1, 4, 5, 6)
3     fmt.Println(arr2) // 输出:1,2,3,4,5,6

  append不仅能在切片末尾添加普通元素,还能在切片末尾添加切片。

1     arr1 := []int{1, 2, 3}
2     arr2 := []int{4, 5, 6}
3     arr3 := append(arr1, arr2...) // 此处必须要有 ... 否则编译器会报类型错误
4     fmt.Println(arr3) // 输出:1,2,3,4,5,6
  • copy

   copy:用于从一个数组切片复制到另一个数组切片。如果加入的两个数组切片不一样大,就会按其中较小的那个数组切片的元素个数进行复制。下面的示例展示了copy()函数的行为:

  slice1 := []int{1, 2, 3, 4, 5}
  slice2 := []int{5, 4, 3}
  copy(slice2, slice1) // 只会复制slice1的前3个元素到slice2中  结果:slice2=1,2,3
  copy(slice1, slice2) // 只会复制slice2的3个元素到slice1的前3个位置

  个人疑问:既然copy能复制数组切片,那么能否复制数组呢?

  疑问解答:通过实践测试,copy不能复制数组。编译时报错:arguments to copy must be slices;

  • range

  range:其含义是在一个数组中遍历每一个值,返回该值的下标值和此处的实际值。

1 func main() {
2     array := [5]int{1, 2, 3, 4, 5}
3     for i, v := range array {
4         fmt.Println("array[", i, "] = ", v)
5     }
6 }

array[ 0 ] = 1
array[ 1 ] = 2
array[ 2 ] = 3
array[ 3 ] = 4
array[ 4 ] = 5

 

posted @ 2015-06-11 11:20  hezhixiong  阅读(644)  评论(0编辑  收藏  举报