GO语言学习:切片和数组

1.数组、切片

  数组的长度是固定的,切片的长度是可变长的

  数组的长度在声明时就必须给定,并且之后不会再变化,数组的长度是其类型的一部分,比如[1]string和[2]string 不是相同的数组类型.

  切片可以看作是对数组的封装,每一个切片的底层的数据结构一定包含一个数组,数组可以被叫做一个切片的底层数组,切片可以看作是对数组某个连续片段的引用.

  GO的引用类型:切片,通道,字典,函数类型.

  GO的值类型 : 数组,基础数据类型,结构体类型

  GO中传的是值还是引用,看类型就可以区分.

2.len 、cap函数

  可以使用len取得到数组和切片的大小和容量,数组的大小等于容量,切片的容量大于等于大小.

3.example 

  package main

  import "fmt"

  func main() {
    s1 := make([]int, 5)
    fmt.Printf("The length of s1: %d\n", len(s1))
    fmt.Printf("The capacity of s1: %d\n", cap(s1))
    fmt.Printf("The value of s1: %d\n", s1)
    s2 := make([]int, 5, 8)
    fmt.Printf("The length of s2: %d\n", len(s2))
    fmt.Printf("The capacity of s2: %d\n", cap(s2))
    fmt.Printf("The value of s2: %d\n", s2)
  }

  执行结果:

    The length of s1:5

    The capacity of s1:5

    The value of s1:[0 0 0 0 0]

    The length of s2:5

    The capacity of s2:8

    The value of s2:[0 0 0 0 0 ] 

猜你喜欢

转载自www.cnblogs.com/1521299249study/p/10063103.html