Go語言數組的使用

來源:互聯網
上載者:User

標籤:for迴圈   序列   就會   填充   資料類型   字元   code   strong   取值   

Go 語言數組

Go 語言提供了數群組類型的資料結構。

數組是具有相同唯一類型的一組已編號且長度固定的資料項目序列,這種類型可以是任意的原始類型例如整形、字串或者自訂類型。

相對於去聲明number0, number1, ..., and number99的變數,使用數組形式numbers[0], numbers[1] ..., numbers[99]更加方便且易於擴充。

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

聲明數組

Go 語言數組聲明需要指定元素類型及元素個數,文法格式如下

 

var array_name [SIZE] array_type

 

以上為一維數組的定義方式。數組長度必須是整數且大於 0。例如以下定義了數組 balance 長度為 10 類型為 float32:

var blance [5] float32

//如果不給初始化的值,預設就用根據資料類型填充數組的元素,float32的預設填充5個大鴨蛋([0 0 0 0 0])
初始化數組

以下示範了數組初始化:

var blance = [5] float32 {1000.0, 2.0, 3.4, 7.0, 50.0}

//給了初始化的值以後,數組中的元素為[1000 2 3.4 7 50]

注意:

  1. 初始化數組中 {} 中的元素個數不能大於 [] 中的數字。
  2. 如果忽略 [] 中的數字不設定數組大小,Go 語言會根據元素的個數來設定數組的大小:[...]
package mainimport (    "fmt")func  main()  {    //會自動計算初始化的值得個數    var blance = [...] float32 {1000.0, 2.0, 3.4, 7.0, 50.0}    //len函數是內建函式,會列印初始化數組中的元素個數    fmt.Println(len(blance))}

修改數組中第一個索引的值(數組的索引從0開始計算)

blance[1] = 101.21//數組中的第二個元素就會被重新賦值為101.21,新數組的結果為[1000 101.21 3.4 7 50]

訪問數組中的值(不能超出數組的個數,不然會報錯)

func  main()  {    //會自動計算初始化的值得個數    var blance = [...] float32 {1000.0, 2.0, 3.4, 7.0, 50.0}    blance[1] = 101.21    //len函數是內建函式,會列印初始化數組中的元素個數    fmt.Println(len(blance))    fmt.Println(blance[4])    /*超過索引的最大取值了,報錯了invalid array index 8 (out of bounds for 5-element array)    fmt.Println(blance[8])    */}

以下示範了數組完整操作(聲明、賦值、訪問)的執行個體:

 1 package main 2  3 import ( 4     "fmt" 5 ) 6  7 func main(){ 8     //建立局部陣列變數blance 9     var blance = [...] string {"a", "b", "c", "d","e","f"}10     //計算數組的個數11     count := len(blance)12     //初始化數組n13     var n [6] int14     for i := 0; i < count; i++{15         //通過for迴圈,給n的索引賦值16         n[i] = i + 1017     }18     19     //訪問新建立的n數組裡面的值20     for index,v := range n{21         fmt.Printf("n數組中的第 %d 個索引為: %d \n",index,v)22     }23 }

以上代碼輸出的結果為:

n數組中的第 0 個索引為: 10
n數組中的第 1 個索引為: 11
n數組中的第 2 個索引為: 12
n數組中的第 3 個索引為: 13
n數組中的第 4 個索引為: 14
n數組中的第 5 個索引為: 15

 

Go 語言多維陣列

Go 語言支援多維陣列,以下為常用的多維陣列聲明方式:

var array_name [SIZE1][SIZE2]...[SIZEN] array_type
二維數組

二維數組是最簡單的多維陣列,二維數組本質上是由一維數組組成的。二維數組定義方式如下:

var arrayName [ x ][ y ] array_type

array_type 為 Go 語言的資料類型,arrayName 為數組名,二維數組可認為是一個表格,x 為行,y 為列,示範了一個二維數組 a 為三行四列:

二維數組中的元素可通過 a[ i ][ j ] 來訪問。

初始化二位元組:

 func main(){    //初始化二維數組    var threedim = [2][5] int {        {1,2,3,4,5},        {6,7,8,9,10},    }    fmt.Println(threedim)}

擷取第二維數組中第一個元素中的第四個值

func main(){    //初始化二維數組,索引從0開始,第一個元素索引為0,第一個元素中第三個索引上的值    var threedim = [2][5] int {        {1,2,3,4,5},        {6,7,8,9,10},    }    fmt.Println(threedim[0][3])}

利用迴圈輸出二維數組的對應索引上的值

 1 package main 2  3 import ( 4     "fmt" 5 ) 6  7 func main(){ 8     //初始化二維數組 9     var threedim = [3][5] int {10         {1,2,3,4,5},11         {6,7,8,9,10},12         {11,12,13,14,15},13     }14     count := len(threedim)15     for i := 0; i< count ; i++{16         inner_count := len(threedim[i])17         for j := 0; j < inner_count; j++{18             fmt.Printf("threedim [%d][%d] = %d\n", i,j,threedim[i][j])19         }20 21     }22 }

以上代碼返回的結果為:

threedim [0][0] = 1threedim [0][1] = 2threedim [0][2] = 3threedim [0][3] = 4threedim [0][4] = 5threedim [1][0] = 6threedim [1][1] = 7threedim [1][2] = 8threedim [1][3] = 9threedim [1][4] = 10threedim [2][0] = 11threedim [2][1] = 12threedim [2][2] = 13threedim [2][3] = 14threedim [2][4] = 15

 

Go語言數組的使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.