go基础(7)数组

数组

定义:数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。
说明:看定义知道 数组的长度是固定的(跟 js和PHP不一样哟),其次类型是固定,定义了是什么类型就都是什么类型
数组的申明:

//申明一个数组:
var fruits [10] string
/**
fruits  表示数组的名字叫fruits
[10] 表示数组的长度为10
string 表示数组里面存的类型就是string类型
*/ 

初始化一个数组:

fruits := [5]string{"香蕉","草莓","车厘子","耙耙柑","葡萄"}
/**
fruits  表示数组的名字叫fruits
[5] 表示数组的长度为5
string 表示数组里面存的类型就是string类型
"香蕉","草莓","车厘子","耙耙柑","葡萄":表示初始化的值
*/

如果在定义数组之前不知这个数组有多长 我们可以用...表示:

fruits := [...]string{"香蕉","草莓","车厘子","耙耙柑","葡萄"}

获取数组中的元素:
现在数组中有"香蕉","草莓","车厘子","耙耙柑","葡萄",我们如何拿到这些值呢
数组元素可以通过索引(位置)来读取(或者修改),索引从 0 开始,第一个元素索引为 0,第二个索引为 1,以此类推。


image.png

如上图,在下标0的位置是香蕉 在下标3的位置是耙耙柑
我们需要拿到耙耙柑:

fruits := [...]string{"香蕉","草莓","车厘子","耙耙柑","葡萄"}
fmt.Println(fruits[3]) //结果为耙耙柑

我们需要向数组中添加元素:

var fruits [5] string
    fruits[0] = "香蕉"
    fruits[1] = "草莓"
    fruits[2] = "车厘子"
    fruits[3] = "耙耙柑"
    fruits[4] = "葡萄"

还可以这样添加:

fruits := []string{}
fruits = append(fruits, "枇杷")
fmt.Println(fruits[0])//枇杷

遍历数组一(for):

fruits := [...]string{"香蕉", "草莓", "车厘子", "耙耙柑", "葡萄"}
    for i := 0; i < len(fruits); i++ {
        fmt.Println(fruits[i])
    }

遍历数组二(range):

fruits := [...]string{"香蕉", "草莓", "车厘子", "耙耙柑", "葡萄"}
    for _,v := range fruits{
        fmt.Println(v)
    }

二维数组

多维数组就是数组中的元素也是数组(数组里面存数组)
定义方式:
var arrayName [ x ][ y ] variable_type
variable_type 为 Go 语言的数据类型,arrayName 为数组名,二维数组可认为是一个表格,x 为行,y 为列,下图演示了一个二维数组 a 为三行四列:


image.png

二维数组中的元素可通过 a[ i ][ j ] 来访问:

emperorAll  := [][]string{}
emperor1 := []string{"姬昌","姬发","嬴政"}
emperor2 := []string{"刘邦","司马懿","拓跋宏"}
emperorAll =  append(emperorAll,emperor1)
emperorAll =  append(emperorAll,emperor2)
fmt.Println(emperorAll[0][2])//嬴政

初始化二维数组:

a := [2][4]int{{11, 45, 67, 89}, {-100, -12, 99, 58}}
fmt.Println(a[1][3])//58

遍历二位数组一(for):

a := [2][4]int{{11, 45, 67, 89}, {-100, -12, 99, 58}}
    for i := 0; i < len(emperorAll); i++ {
        for j := 0; j < len(emperorAll[i]); j++ {
            fmt.Println(emperorAll[i][j])
        }
    }

遍历二位数组一(range):

a := [2][4]int{{11, 45, 67, 89}, {-100, -12, 99, 58}}
    for _,v := range a{
        for _,val := range v{
            fmt.Println(val)
        }
    }

你可能感兴趣的:(go基础(7)数组)