【Golang 基礎】Go 語言的數組

Go 語言中的數組 (示例代碼

  • 定義數組的格式:var <arrayName> [n]<type>, 其中 n >= 0;
package basic

import "fmt"

func DeclaratArray(){
    
    // 定義指定長度的數組
    var arr1 [5]int
    fmt.Println(arr1) // [0 0 0 0 0]
    
    // 不設置數組長度
    arr2 := [...]int{}
    fmt.Println(arr2) // []
    
    // 定義指定長度的數組,並賦值
    arr3 := [2]int{ 1, 5 }
    fmt.Println(arr3) // [1 5]
}
  • 經過 new 關鍵字聲明數組,返回一個指向該數組的指針;
package basic

import "fmt"

func DeclaratArrayByNew(){
    
    // 經過 new 聲明數組 ,返回一個指向該數組的指針
    arr1 := new([5]int)
    fmt.Println(arr1) // &[0 0 0 0 0]
}

指向數組的指針 與 指針數組的區別是:git

  • 指向數組的指針:是指一個指針指向某個數組;
  • 指針數組:數組包含的類型是指針;

數組長度也是數組類型的一部分,所以具備不一樣長度的數組爲不一樣類型。github

數組是值類型

  Go 語言中的數組是值類型的,也就意味着兩個相同類型的數組能夠使用 ==!= 運算符判斷兩個數組是否相等,可是不能使用 <> 運算符;golang

package basic

import "fmt"

func JudgeArray(){
    arr1 := [5]int{1, 3, 5}
    arr2 := [5]int{2, 4, 6}
    
    fmt.Println(arr1 == arr2) // false
    fmt.Println(arr1 != arr2) // true
}

  因爲數組是值類型,所以向一個函數傳遞數值時,須要傳遞一個指向該數組的指針,才能在函數內更改該數組的值;數組

package main

import "fmt"

// 更改數組內的值
func UpdateArray(array *[5]int){
    array[0] = 100
}

func main(){
    array := [5]int{1, 3, 4, 5}
    UpdateArray(&array)
    fmt.Println(array) // [100 3 4 5 0]
}

實際上在 Go 語言中通常不直接使用數組,而是使用切片。函數

多維數組

package basic

import "fmt"

func MultidimensionalArray() {
    array := [2][3]int{
        {1, 3, 5},
        {2, 4, 6},
    }
    fmt.Println(array) // [[1 3 5] [2 4 6]]
}
相關文章
相關標籤/搜索