您好,登錄后才能下訂單哦!
GO語言數(shù)組:
數(shù)組是Go語言編程中最常用的數(shù)據(jù)結(jié)構(gòu)之一。顧名思義,數(shù)組就是指一系列同一類型數(shù)據(jù)的集合。數(shù)組中包含的每個數(shù)據(jù)被稱為數(shù)組元素(element),一個數(shù)組包含的元素個數(shù)被稱為數(shù)組的長度。
在Go語言中數(shù)組是一個值類型(value type)。是真真實實的數(shù)組,而不是一個指向數(shù)組內(nèi)存起始位置的指針,也不能和同類型的指針進(jìn)行轉(zhuǎn)化,這一點嚴(yán)重不同于C語言。所有的值類型變量在賦值和作為參數(shù)傳遞時都將產(chǎn)生一次復(fù)制動作。如果將數(shù)組作為函數(shù)的參數(shù)類型,則在函數(shù)調(diào)用時該參數(shù)將發(fā)生數(shù)據(jù)復(fù)制。因此,在函數(shù)體中無法修改傳入的數(shù)組的內(nèi)容,因為函數(shù)內(nèi)操作的只是所傳入數(shù)組的一個副本
數(shù)組的定義方式:
1、[length]Type 2、[N]Type{value1, value2, ... , valueN} 3、[...]Type{value1, value2, ... ,
egg:數(shù)組操作定義.......
package main import "fmt" func main() { //******第一種創(chuàng)建數(shù)組 //聲明一個數(shù)組并賦值 var a [3]int = [3]int{1, 2, 3} fmt.Println(a) //等價的賦值 b := [3]int{1} fmt.Println(b) //***定義一個空的數(shù)組 var c [5]int fmt.Println(c) //***定義一個省略長度采用"..."的方式,GO自動根據(jù)元素個數(shù)來計算長度 d := [...]int{1, 2, 3, 4, 5, 6, 7} fmt.Println(d) //進(jìn)階定義,對第9個元素(下標(biāo)為8)賦值1,其他同理 e := [...]int{8: 1} fmt.Println(e) //數(shù)組的元素是指針,f數(shù)組的元素是指向int的指針 aa := 1 bb := 2 f := [...]*int{&aa, &bb} fmt.Println(f) //指向數(shù)組的指針 g := [5]int{1, 2, 3, 4, 5} //k是一個指向數(shù)組的指針 var k *[5]int = &g fmt.Println(k) //數(shù)組的比較 a1 := [2]int{1, 2} a2 := [2]int{1, 2} fmt.Println(a1 == a2) //通過new返回一個指向數(shù)組的指針,做賦值操作 l := new([2]int) fmt.Println(l) l[0], l[1] = 11, 22 fmt.Println(l) //多維數(shù)組,二行二列 m := [2][2]int{{1, 2}, {3, 4}} fmt.Println(m) //自動計算多維數(shù)組,必須是頂級 n := [...][2]int{{1, 2}, {3, 4}, {5, 6}} fmt.Println(n) }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。