最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言基礎學習之數組的使用詳解

 更新時間:2022年12月30日 11:27:17   作者:程序員祝融  
數組相必大家都很熟悉,各大語言也都有數組的身影。Go 語言也提供了數組類型的數據結構。本文就來通過一些簡單的示例帶大家了解一下Go語言中數組的使用,希望對大家有所幫助

數組相必大家都很熟悉,各大語言也都有數組的身影。Go 語言也提供了數組類型的數據結構。

1. Array(數組)

數組是同一種數據類型的固定長度的元素集合。在 Go 語言中,數組聲明后長度就不能改變了,可以修改數組的元素,用法:

// eg: 定義一個長度為 10 的 int 數組
var a [10]int

2. 聲明數組

Go 語言數組申明時需要指定元素類型及元素的個數,語法格式如下:

var variable_name [SIZE] variable_type

3. 數組初始化

Go 語言中初始化數組有很多方式。

3.1 方式一

我們也可以通過字面量在聲明數組的同時快速初始化數組:

balance := [5]float32{3.14, 13.0, 33.4, 15.0, 20.0}

3.2 方式二

如果數組長度不確定,可以使用 ...代替數組的長度,編譯器會根據元素個數自行推斷數組的長度:

balance := [...]float32{3.14, 13.0, 33.4, 15.0, 20.0}

3.3 方式三

如果設置了數組的長度,我們還可以通過指定下標來初始化元素:

//  將索引下標為 1 和 3 的元素初始化
balance := [5]float32{1:2.0,3:7.0}

3.4 多維數組

package main

import (
    "fmt"
)

var array1 [5][3]int
var array2 [2][3]int = [...][3]int{{10, 20, 30}, {4, 5, 6}}

func main() {
    arr1 := [2][3]int{{10, 11, 12}, {20, 21, 22}}
    arr2 := [...][2]int{{10, 11}, {20, 21}, {30, 31}}
    fmt.Println(array1, array2)
    fmt.Println(arr1, arr2)
}

注意: Go 語言多維數組中,只有第一層可以用 ...其他維度不能用 ...

4. 遍歷數組&取值

Go 語言中,遍歷數組有以下兩種方法:

func main() {
    var users = [...]string{"張三", "李四", "王五"}

    // 方法1:for range遍歷
    for index, item := range users {
        fmt.Println(index, item)
    }
    
    // 方法2:for循環(huán)遍歷
    for i := 0; i < len(users); i++ {
        fmt.Println("姓名:", users[i])
    }

}

多維數組遍歷

func main() {
    var f [2][3]int = [...][3]int{{10, 20, 30}, {4, 5, 6}}
    
    for k1, v1 := range f {
        for k2, v2 := range v1 {
            fmt.Printf("(%d,%d)=%d ", k1, k2, v2)
        }
        fmt.Println("-------------")
    }
}

注意: Go 語言中訪問越界,如果下標在數組合法范圍之外,則觸發(fā)訪問越界,會出現 panic

5. 數組拷貝和傳參

Go 語言中數組是值類型,賦值和傳參會復制整個數組。只會改變復制出來臨時數組的值,不會改變本身。

package main

import "fmt"

func printArr1(arr *[5]int) {
    // 數組指針
    arr[0] = 1000
}

func printArr2(arr [5]int) {
    arr[0] = 1000
}

func main() {
    arr1 := [5]int{100, 200, 300, 400, 500}
    printArr1(&arr1)
    fmt.Println(arr1)
    
    arr2 := [...]int{2, 4, 6, 8, 10}
    printArr2(arr2)
    fmt.Println(arr2)
}

控制臺輸出結果:

[1000 200 300 400 500]
[2 4 6 8 10]

注意:

  • 數組支持 “==“、”!=” 操作符,因為其內存總是被初始化過的。
  • [n]T 表示指針數組,[n]T 表示數組指針 。

到此這篇關于Go語言基礎學習之數組的使用詳解的文章就介紹到這了,更多相關Go語言數組內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 利用go語言實現查找二叉樹中的最大寬度

    利用go語言實現查找二叉樹中的最大寬度

    這篇文章主要介紹了利用go語言實現查找二叉樹中的最大寬度,文章圍繞主題展開詳細介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • 通過Golang實現無頭瀏覽器截圖

    通過Golang實現無頭瀏覽器截圖

    在Web開發(fā)中,有時需要對網頁進行截圖,以便進行頁面預覽、測試等操作,本文為大家整理了Golang實現無頭瀏覽器的截圖的方法,感興趣的可以了解一下
    2023-05-05
  • golang 函數以及函數和方法的詳解及區(qū)別

    golang 函數以及函數和方法的詳解及區(qū)別

    這篇文章主要介紹了golang 函數以及函數和方法的區(qū)別的相關資料,需要的朋友可以參考下
    2017-05-05
  • Go語言異常處理error、panic、recover的使用

    Go語言異常處理error、panic、recover的使用

    GO語言中引入的異常的處理方式為error、panic、recover ,本文主要介紹了Go語言異常處理error、panic、recover的使用,感興趣的可以了解一下
    2024-08-08
  • gtoken替換jwt實現sso登錄的問題小結

    gtoken替換jwt實現sso登錄的問題小結

    這篇文章主要介紹了gtoken替換jwt實現sso登錄,主要介紹了替換jwt的原因分析及gtoken的優(yōu)勢,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 10個可以優(yōu)化代碼的Go語言技巧分享

    10個可以優(yōu)化代碼的Go語言技巧分享

    這篇文章主要為大家詳細介紹了10個可以優(yōu)化代碼的Go語言技巧,從而讓我們的代碼更加優(yōu)雅,文中的示例代碼講解詳細,需要的小伙伴可以參考下
    2024-01-01
  • 淺談go語言renderer包代碼分析

    淺談go語言renderer包代碼分析

    本篇文章主要介紹了淺談go語言renderer包代碼分析,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • golang接收post和get請求參數處理

    golang接收post和get請求參數處理

    本文主要介紹了golang接收post和get請求參數處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Go 語言數據結構之雙鏈表學習教程

    Go 語言數據結構之雙鏈表學習教程

    這篇文章主要為大家介紹了Go 語言數據結構之雙鏈表學習教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Go Time庫中時間和日期相關的操作方法整理

    Go Time庫中時間和日期相關的操作方法整理

    這篇文章主要為大家整理了Go語言中的time庫,包括時間、日期和時區(qū)等相關概念及使用方法,希望通過掌握這些知識,大家可以更好地處理時間、日期和時區(qū)相關的問題
    2023-08-08

最新評論

九江县| 景东| 梅河口市| 禄丰县| 彩票| 化州市| 时尚| 客服| 合水县| 教育| 元氏县| 隆化县| 太仓市| 洛浦县| 萍乡市| 乌拉特前旗| 镇远县| 南昌县| 宜宾市| 惠安县| 滨州市| 策勒县| 新疆| 绥阳县| 涞水县| 昭觉县| 囊谦县| 泽州县| 化德县| 宜宾县| 麻栗坡县| 田东县| 维西| 特克斯县| 揭西县| 囊谦县| 陕西省| 榕江县| 咸宁市| 大荔县| 奇台县|