GO語言基礎語法之數組(第十四天)

數組:

與C語言類似,數組元素可以通過索引(位置)來讀取(或者修改),索引從 0 開始,第一個元素索引爲 0,第二個索引爲 1,以此類推,

一維數組的定義方式:
Go 語言數組聲明需要指定元素類型及元素個數,語法格式如下:
var variable_name [SIZE] variable_type
。例如
var str [10] float64

多維數組聲明方式:
var variable_name [SIZE1][SIZE2]…[SIZEN] variable_type
以下實例聲明瞭三維的整型數組:
var str [512[1024][8]int

遍歷方式:
與C語言遍歷方式相同

注意點:

  • 想向函數傳遞數組參數,需要在函數定義時,聲明形參爲數組

  • 其中分爲:形參設定數組大小y以及形參未設定數組大小
    void func test (str [] int) //分片,數組的處理,切片包含對底層數組內容的引用,類似於 指針傳,函數中的修改對調用者可見。
    void func test1 (str [10] int) //拷貝,值傳遞,函數中的修改對調用者不可見

  • 未定義長度的數組只能傳給不限制數組長度的函數 ,定義了長度的數組只能傳給限制了相同數組長度的函數

package main

import "fmt"

/*數組拷貝,不改變調用者的數組的內容*/
func boo(tt [6]int) {
	tt[0], tt[len(tt)-1] = tt[len(tt)-1], tt[0]
	fmt.Println(tt)
}

/*切片,類似指針操作,可以修改源數組的內容*/
func poo(tt []int) {
	tt[0], tt[len(tt)-1] = tt[len(tt)-1], tt[0] //多重賦值時,變量的左值和右值按從左到右的順序賦值
	fmt.Println(tt)
}
func TestShuzu() {

	b := [...]int{1, 3, 5, 7, 9, 11}
	boo(b)
	fmt.Println(b) // [1, 3, 5, 7, 9, 11]

	p := []int{1, 3, 5, 7, 9, 11}
	poo(p)
	fmt.Println(p) // [11 3 5 7 11 1]
}

func main() {

	TestShuzu()
}

API server listening at: 127.0.0.1:31758
[11 3 5 7 9 1]
[1 3 5 7 9 11]
[11 3 5 7 9 1]
[11 3 5 7 9 1]
Process exiting with code: 0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章