Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

Golang 結(jié)構(gòu)體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項(xiàng)

Go 語言數(shù)組

Go編程語言中的數(shù)組與其他編程語言非常相似。在程序中,有時(shí)我們需要存儲一組相同類型的數(shù)據(jù),例如學(xué)生分?jǐn)?shù)列表。這種類型的集合使用數(shù)組存儲在程序中。數(shù)組是固定長度的序列,用于將同類元素存儲在內(nèi)存中。由于它們的固定長度數(shù)組不像Go語言中的Slice(切片)這樣受歡迎。
在數(shù)組中,允許在其中存儲零個(gè)或零個(gè)以上的元素。通過使用[]索引運(yùn)算符及其從零開始的位置對數(shù)組的元素進(jìn)行索引,這意味著第一個(gè)元素的索引為array [0],最后一個(gè)元素的索引為array [len(array)-1]。

golang中的數(shù)組

創(chuàng)建和訪問數(shù)組

在Go語言中,數(shù)組是通過兩種不同的方式創(chuàng)建的:

  • 使用var關(guān)鍵字:在Go語言中,使用具有名稱,大小和元素的特定類型的var關(guān)鍵字創(chuàng)建數(shù)組。

    語法:

    Var array_name[length]Type
    或
    var array_name[length]Typle{item1, item2, item3, ...itemN}

    重要事項(xiàng):

    • 在Go語言中,數(shù)組是可變的,因此您可以在分配的左側(cè)使用array [index]語法在給定索引處設(shè)置數(shù)組的元素。

      Var array_name[index] = element[object Object]
    • 您可以使用索引值或使用for循環(huán)來訪問數(shù)組的元素。

    • 在Go語言中,數(shù)組類型是一維的。

    • 數(shù)組的長度是固定的,不能更改。

    • 您可以將重復(fù)的元素存儲在數(shù)組中。

    • //使用var關(guān)鍵字創(chuàng)建一個(gè)數(shù)組
      //使用其索引值訪問數(shù)組
      package main
      
      import "fmt"
      
      func main() {
      
          //使用var關(guān)鍵字,創(chuàng)建一個(gè)字符串類型的數(shù)組
          var myarr [3]string
      
          //使用索引分配元素
          myarr[0] = "GFG"
          myarr[1] = "www.soo66.com"
          myarr[2] = "nhooo"
      
          //訪問數(shù)組的元素
          //使用索引值
          fmt.Println("數(shù)組的元素:")
          fmt.Println("元素 1: ", myarr[0])
          fmt.Println("元素 2: ", myarr[1])
          fmt.Println("元素 3: ", myarr[2])
      }

      輸出:

      數(shù)組的元素:
      元素 1:  GFG
      元素 2:  www.soo66.com
      元素 3:  nhooo
  • 使用簡寫聲明:在Go語言中,數(shù)組也可以使用簡寫聲明進(jìn)行聲明。它比上面的聲明更靈活。

    語法:

    array_name:= [length]Type{item1, item2, item3,...itemN}[object Object]
    //使用簡寫聲明的數(shù)組
    //使用for循環(huán)訪問數(shù)組
    package main
    
    import "fmt"
    
    func main() {
    
        //數(shù)組的簡寫聲明
        arr := [4]string{"nhooo", "gfg", "nhooos1231", "www.soo66.com"}
    
        //訪問的元素,使用for循環(huán)的數(shù)組
        fmt.Println("數(shù)組的元素:")
    
        for i := 0; i < 3; i++ {
            fmt.Println(arr[i])
        }
    
    }

    輸出:

    數(shù)組的元素:
    nhooo
    gfg
    nhooos1231
  • 多維數(shù)組

    我們已經(jīng)知道數(shù)組是一維的,但是允許創(chuàng)建多維數(shù)組。多維數(shù)組是相同類型數(shù)組的數(shù)組。在Go語言中,您可以使用以下語法創(chuàng)建多維數(shù)組:

    Array_name[Length1][Length2]..[LengthN]Type

    您可以使用Var關(guān)鍵字使用簡寫聲明來創(chuàng)建多維數(shù)組,如下例所示。

    注意:在多維數(shù)組中,如果用戶未使用某個(gè)值初始化單元格,則編譯器將自動(dòng)將其初始化為零。Golang中沒有未初始化的概念。

    package main
    
    import "fmt"
    
    func main() {
    
        //創(chuàng)建和初始化
        //二維數(shù)組
        //使用簡寫聲明
        //這里需要用(,)逗號
        arr := [3][3]string{{"C#", "C", "Python"},
            {"Java", "Scala", "Perl"},
            {"C++", "Go", "HTML"}}
    
        //訪問的值
        //數(shù)組使用for循環(huán)
        fmt.Println("數(shù)組的元素 1")
        for x := 0; x < 3; x++ {
            for y := 0; y < 3; y++ {
                fmt.Println(arr[x][y])
            }
        }
    
        //創(chuàng)建二維數(shù)組
        //使用var關(guān)鍵字的數(shù)組
        //并初始化一個(gè)
        //使用索引的維數(shù)組
        var arr1 [2][2]int
        arr1[0][0] = 100
        arr1[0][1] = 200
        arr1[1][0] = 300
        arr1[1][1] = 400
    
        //訪問數(shù)組的值
        fmt.Println("數(shù)組的元素 2")
        for p := 0; p < 2; p++ {
            for q := 0; q < 2; q++ {
                fmt.Println(arr1[p][q])
    
            }
        }
    }

    輸出:

    數(shù)組的元素 1
    C#
    C
    Python
    Java
    Scala
    Perl
    C++
    Go
    HTML
    數(shù)組的元素 2
    100
    200
    300
    400

    關(guān)于數(shù)組的注意事項(xiàng)

  • 在數(shù)組中,如果未顯式初始化數(shù)組,則此數(shù)組默認(rèn)值為0。

    package main 
      
    import "fmt"
      
    func main() { 
      
    //創(chuàng)建一個(gè)int類型的數(shù)組,存儲兩個(gè)元素
    //在這里,我們不初始化數(shù)組,所以數(shù)組的值為零
    var myarr[2]int 
    fmt.Println("數(shù)組元素 :", myarr) 
      
    }

    輸出:

    數(shù)組元素 : [0 0]
  • 在數(shù)組中,您可以使用len()方法獲取數(shù)組的長度,如下所示:

    package main
    
    import "fmt"
    
    func main() {
    
        //創(chuàng)建數(shù)組
        //使用簡寫聲明
        arr1 := [3]int{9, 7, 6}
        arr2 := [...]int{9, 7, 6, 4, 5, 3, 2, 4}
        arr3 := [3]int{9, 3, 5}
    
        // 使用len方法計(jì)算數(shù)組大小
        fmt.Println("數(shù)組1的長度是:", len(arr1))
        fmt.Println("數(shù)組2的長度是:", len(arr2))
        fmt.Println("數(shù)組3的長度是:", len(arr3))
    }

    輸出:

    數(shù)組1的長度是: 3
    數(shù)組2的長度是: 8
    數(shù)組3的長度是: 3
  • 在數(shù)組中,如果省略號“ ...”在長度位置處可見,則數(shù)組的長度由初始化的元素確定。如下例所示:

    //數(shù)組中省略號的使用方法
    package main
    
    import "fmt"
    
    func main() {
    
        //創(chuàng)建大小已確定的數(shù)組
        //根據(jù)其中元素的數(shù)量
        //使用省略號
        myarray := [...]string{"GFG", "gfg", "nhooos", "www.soo66.com", "nhooo"}
    
        fmt.Println("數(shù)組元素: ", myarray)
    
        //數(shù)組的長度
        //由...決定
        //使用len()方法
        fmt.Println("數(shù)組的長度為:", len(myarray))
    }

    輸出:

    數(shù)組元素:  [GFG gfg nhooos www.soo66.com nhooo]
    數(shù)組的長度為: 5
  • 在數(shù)組中,允許您在array 的元素范圍內(nèi)進(jìn)行迭代。如下例所示:

    //如何迭代數(shù)組
    package main
    
    import "fmt"
    
    func main() {
    
        //創(chuàng)建一個(gè)數(shù)組,其大小
        //用省略號表示
        myarray := [...]int{29, 79, 49, 39, 20, 49, 48, 49}
    
        //使用for循環(huán)迭代數(shù)組
        for x := 0; x < len(myarray); x++ {
            fmt.Printf("%d\n", myarray[x])
        }
    }

    輸出:

    29
    79
    49
    39
    20
    49
    48
    49
  • 在Go語言中,數(shù)組的值類型不是引用類型。因此,當(dāng)將數(shù)組分配給新變量時(shí),在新變量中所做的更改不會影響原始數(shù)組。如下例所示:

    package main
    
    import "fmt"
    
    func main() {
    
        //創(chuàng)建一個(gè)數(shù)組,其大小
        //用省略號表示
        my_array := [...]int{100, 200, 300, 400, 500}
        fmt.Println("原始數(shù)組(改變前):", my_array)
    
        //創(chuàng)建一個(gè)新變量
        //并使用my_array進(jìn)行初始化
        new_array := my_array
    
        fmt.Println("新數(shù)組(改變前):", new_array)
    
        //將索引0處的值更改為500
        new_array[0] = 500
    
        fmt.Println("新數(shù)組(改變后):", new_array)
    
        fmt.Println("原始數(shù)組(改變后):", my_array)
    }

    輸出:

    原始數(shù)組(改變前): [100 200 300 400 500]
    新數(shù)組(改變前): [100 200 300 400 500]
    新數(shù)組(改變后): [500 200 300 400 500]
    原始數(shù)組(改變后): [100 200 300 400 500]
  • 在數(shù)組中,如果數(shù)組的元素類型是可比較的,則數(shù)組類型也是可比較的。因此,我們可以使用==運(yùn)算符直接比較兩個(gè)數(shù)組。如下例所示:

    //如何比較兩個(gè)數(shù)組
    package main
    
    import "fmt"
    
    func main() {
    
        arr1 := [3]int{9, 7, 6}
        arr2 := [...]int{9, 7, 6}
        arr3 := [3]int{9, 5, 3}
    
        //使用==運(yùn)算符比較數(shù)組
        fmt.Println(arr1 == arr2)
        fmt.Println(arr2 == arr3)
        fmt.Println(arr1 == arr3)
    
        //這將給出和錯(cuò)誤,因?yàn)?
        // arr1和arr4的類型不匹配
        /*
           arr4:= [4]int{9,7,6}
           fmt.Println(arr1==arr4)
        */
    }

    輸出:

    true
    false
    false
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清