Go語言學習03

來源:互聯網
上載者:User

標籤:color   容器   命令   一個   聲明   判斷   指定   獲得   學習   

Go語言-數群組類型

一個數組(Array)就是一個可以容納若干類型相同的元素的容器。這個容器的大小(即數組的長度)是固定的,且是體現在數組的類型字面量之中的。比如,我們聲明了一個數群組類型:

type MyNumbers [3]int

註:型別宣告語句由關鍵字type、類型名稱和類型字面量組成。

     所謂類型字面量,就是用於表示某個類型的字面表示(或稱標記方法)。相對的,用於表示某個類型的值的字面表示可被稱為值字面量,或簡稱為字面量。比如之前提到過的3.7E-2就可被稱為浮點數字面量。 類型字面量[3]int由兩部分組成。第一部分是由方括弧包裹的數組長度,即[3]。這也意味著,一個數組的長度是該數組的類型的組成部分,是固定不變的。該類型字面量的第二個組成部分是int。它代表了該數組可以容納的元素的類型。說到這裡,上面這條型別宣告語句實際上是為數群組類型[3]int聲明了一個別名資料型別。這使得我們可以把MyNumbers當做數群組類型[3]int來使用。

  
    我們表示這樣一個數群組類型的值的時候,應該把該類型的類型字面量寫在最左邊,然後用花括弧包裹該值包含的若干元素。各元素之間以(英文半形)逗號分隔,即:

[3]int{1, 2, 3}    

    現在,我們把這個數組字面量賦給一個名為numbers的變數:

var numbers = [3]int{1, 2, 3}

註:這是一條變數聲明語句。它在聲明變數的同時為該變數賦值。

    另一種便捷方法是,在其中的類型字面量中省略代表其長度的數字,像這樣:

var numbers = [...]int{1, 2, 3}

    這樣就可以免去我們為填入那個數字而數出元素個數的工作了。

    接下來,我們可以很方便地使用索引運算式來訪問該變數的值中的任何一個元素,例如:

numbers[0] // 會得到第一個元素numbers[1] // 會得到第二個元素numbers[2] // 會得到第三個元素

註:索引運算式由字串、數組、切片或字典類型的值(或者代表此類值的變數或常量)和由方括弧包裹的索引值組成。在這裡,索引值的有效範圍是[0, 3)。也就是說,對於數組來說,索引值既不能小於0也不能大於或等於數組值的長度。另外要注意,索引值的最小有效值總是0,而不是1。
  
    相對的,如果我們想修改數組值中的某一個元素值,那麼可以使用指派陳述式直接達到目的。例如,我們要修改numbers中的第二個元素的話,如此即可:

numbers[1] = 4

    雖然數組的長度已經體現在了它的類型字面量,但是我們在很多時候仍然需要明確的獲得它,像這樣:

var length = len(numbers)

註:len是Go語言的內建函數的名稱。該函數用於擷取字串、數組、切片、字典或通道類型的值的長度。我們可以在Go語言源碼檔案中直接使用它。
  
    最後,要注意,如果我們只聲明一個數群組類型的變數而不為它賦值,那麼該變數的值將會是指定長度的、其中各元素均為元素類型的零值(或稱預設值)的數組值。例如,若有這樣一個變數:

var numbers2 [5]int

  則它的值會是

[5]int{0, 0, 0, 0, 0}
任務

請在命令源碼檔案index.go的第11行的反引號中填入一個數字,使程式列印到標準輸出上的內容為true

package mainimport "fmt"func main() {    var numbers2 [5]int    numbers2[0] = 2    numbers2[3] = numbers2[0] - 3    numbers2[1] = numbers2[2] + 5    numbers2[4] = len(numbers2)    sum := (11)    // “==”用於兩個值的相等性判斷    fmt.Printf("%v\n", (sum == numbers2[0]+numbers2[1]+numbers2[2]+numbers2[3]+numbers2[4]))}

 

 

Go語言學習03

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.