国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

十、go語言Array(數(shù)組)基本使用方法

這篇具有很好參考價值的文章主要介紹了十、go語言Array(數(shù)組)基本使用方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、數(shù)組(Array)

1.1 什么是數(shù)組

Go 語言提供了數(shù)組類型的數(shù)據(jù)結(jié)構(gòu)。
數(shù)組是具有相同唯一類型的一組已編號且長度固定的數(shù)據(jù)項序列,這種類型可以是任意的原始類型例如整形、字符串或者自定義類型。

數(shù)組元素可以通過索引(位置)來讀?。ɑ蛘咝薷模饕龔?開始,第一個元素索引為 0,第二個索引為 1,以此類推。數(shù)組的下標(biāo)取值范圍是從0開始,到長度減1。

數(shù)組一旦定義后,大小不能更改。

1.2 數(shù)組的語法

聲明和初始化數(shù)組

需要指明數(shù)組的大小和存儲的數(shù)據(jù)類型。

var variable_name [SIZE] variable_type

示例代碼:

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

初始化數(shù)組中 {} 中的元素個數(shù)不能大于 [] 中的數(shù)字。
如果忽略 [] 中的數(shù)字不設(shè)置數(shù)組大小,Go 語言會根據(jù)元素的個數(shù)來設(shè)置數(shù)組的大小:

var balance = []float32{1000.0, 2.0, 3.4, 7.0, 50.0}
balance[4] = 50.0

數(shù)組的其他創(chuàng)建方式:

var a [4] float32 // 等價于:var arr2 = [4]float32{}
fmt.Println(a) // [0 0 0 0]
var b = [5] string{"ruby", "王二狗", "rose"}
fmt.Println(b) // [ruby 王二狗 rose  ]
var c = [5] int{'A', 'B', 'C', 'D', 'E'} // byte
fmt.Println(c) // [65 66 67 68 69]
// ... makes the compiler determine the length(使用[...]:編譯器確定長度)
d := [...] int{1,2,3,4,5}// 根據(jù)元素的個數(shù),設(shè)置數(shù)組的大小
fmt.Println(d)//[1 2 3 4 5]
e := [5] int{4: 100} // [0 0 0 0 100],設(shè)置數(shù)組某個位置的值
fmt.Println(e)
f := [...] int{0: 1, 4: 1, 9: 1} // [1 0 0 0 1 0 0 0 0 1]
fmt.Println(f)
g := [...] string {4 : "aaa"} //[    aaa]
fmt.Println(g)
if g[0] == "" {
	fmt.Println("aaaaaa")
}
//輸出:aaaaaa

訪問數(shù)組元素

float32 salary = balance[9]

示例代碼:

package main

import "fmt"

func main() {
   var n [10]int /* n 是一個長度為 10 的數(shù)組 */
   var i,j int

   /* 為數(shù)組 n 初始化元素 */         
   for i = 0; i < 10; i++ {
      n[i] = i + 100 /* 設(shè)置元素為 i + 100 */
   }

   /* 輸出每個數(shù)組元素的值 */
   for j = 0; j < 10; j++ {
      fmt.Printf("Element[%d] = %d\n", j, n[j] )
   }
}

運行結(jié)果:

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

數(shù)組的長度

通過將數(shù)組作為參數(shù)傳遞給len函數(shù),可以獲得數(shù)組的長度。

示例代碼:

package main

import "fmt"

func main() {  
    a := [...]float64{67.7, 89.8, 21, 78}
    fmt.Println("length of a is",len(a))
    for i := 0; i < len(a); i++ { //looping from 0 to the length of the array
        fmt.Printf("%d th element of a is %.2f\n", i, a[i])
    }

}

運行結(jié)果:

length of a is 4

遍歷數(shù)組():

package main

import "fmt"

func main() {  
    a := [...]float64{67.7, 89.8, 21, 78}
    sum := float64(0)
    for i := 0; i < len(a); i++ { //looping from 0 to the length of the array
        fmt.Printf("%d th element of a is %.2f\n", i, a[i])
    }
    //使用range遍歷
    for i, v := range a {//range returns both the index and value
        fmt.Printf("%d the element of a is %.2f\n", i, v)
        sum += v
    }
    fmt.Println("\nsum of all elements of a",sum)
}
//輸出
0 th element of a is 67.70
1 th element of a is 89.80
2 th element of a is 21.00
3 th element of a is 78.00
0 the element of a is 67.70
1 the element of a is 89.80
2 the element of a is 21.00
3 the element of a is 78.00

sum of all elements of a 256.5

如果您只需要值并希望忽略索引,那么可以通過使用_ blank標(biāo)識符替換索引來實現(xiàn)這一點。

for _, v := range a { //ignores index  
}
//輸出
67.7
89.8
21
78

1.3 多維數(shù)組

Go 語言支持多維數(shù)組,以下為常用的多維數(shù)組聲明語法方式:

var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type
var threedim [5][10][4]int

三維數(shù)組

a = [3][4]int{  
 {0, 1, 2, 3} ,   /*  第一行索引為 0 */
 {4, 5, 6, 7} ,   /*  第二行索引為 1 */
 {8, 9, 10, 11}   /*  第三行索引為 2 */
}
int val = a[2][3]

1.4 數(shù)組是值類型

數(shù)組是值類型
Go中的數(shù)組是值類型,而不是引用類型。這意味著當(dāng)它們被分配給一個新變量時,將把原始數(shù)組的副本分配給新變量。如果對新變量進(jìn)行了更改,則不會在原始數(shù)組中反映。

package main

import "fmt"

func main() {  
    a := [...]string{"USA", "China", "India", "Germany", "France"}
    b := a // a copy of a is assigned to b
    b[0] = "Singapore"
    fmt.Println("a is ", a)
    fmt.Println("b is ", b) 
}

運行結(jié)果:

a is [USA China India Germany France]  
b is [Singapore China India Germany France] 

數(shù)組的大小是類型的一部分。因此[5]int和[25]int是不同的類型。因此,數(shù)組不能被調(diào)整大小。不要擔(dān)心這個限制,因為切片的存在是為了解決這個問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-472748.html

package main

func main() {  
    a := [3]int{5, 78, 8}
    var b [5]int
    b = a //not possible since [3]int and [5]int are distinct types
}

到了這里,關(guān)于十、go語言Array(數(shù)組)基本使用方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 微信小程序在 wxml 文件中使用 Array.includes 方法

    微信小程序在 wxml 文件中使用 Array.includes 方法

    微信小程序中不能直接在wxml使用includes,否則 不起作用 需要通過wxs使用: 1、在wxs下創(chuàng)建一個includes.wxs ?2、在wxml中使用 先引入 后使用

    2024年02月11日
    瀏覽(30)
  • lodash已死?radash最全使用介紹(附源碼說明)—— Array方法篇(4)

    tips:點贊 + 收藏 = 學(xué)會! 我們已經(jīng)介紹了 radash 的相關(guān)信息和部分Array相關(guān)方法,詳情可前往主頁查看。 本篇我們繼續(xù)介紹radash中Array的相關(guān)方法的剩余方法。 本期文章發(fā)布后,作者也會同步整理出Array方法的使用目錄,包括 文章說明 和 腦圖說明 。 因為方法較多,后續(xù)將

    2024年04月24日
    瀏覽(28)
  • lodash已死?radash最全使用介紹(附源碼說明)—— Array方法篇(3)

    我們已經(jīng)介紹了radash的相關(guān)信息和部分Array相關(guān)方法,詳情可前往主頁查看; 本篇我們繼續(xù)介紹radash中Array的相關(guān)方法; 下期我們將介紹解析radash中剩余的 Array相關(guān)方法,并整理出Array方法使用目錄,包括 文章說明 和 腦圖說明 。 使用說明 參數(shù):迭代次數(shù)、每次迭代調(diào)用的

    2024年04月12日
    瀏覽(19)
  • 深入理解與使用go之函數(shù)與方法--使用

    深入理解與使用go之函數(shù)與方法–理解與使用 在 Go 語言中,函數(shù)被視為一等公民(First-Class Citizens),這意味著函數(shù)可以像其他值(比如整數(shù)、字符串等)一樣被操作、分配和傳遞。而方法是附加到給定類型的函數(shù)。附加類型稱為接收器,可以是指針或值。 我們分別看兩個例

    2024年03月25日
    瀏覽(18)
  • go語言Array 與 Slice

    go語言Array 與 Slice

    有的語言會把數(shù)組用作常用的基本的數(shù)據(jù)結(jié)構(gòu),比如 JavaScript,而 Golang 中的數(shù)組(Array),更傾向定位于一種底層的數(shù)據(jù)結(jié)構(gòu),記錄的是一段連續(xù)的內(nèi)存空間數(shù)據(jù)。但是在 Go 語言中平時直接用數(shù)組的時候不多,大多數(shù)場景下我們都會直接選用更加靈活的切片(Slice) 聲明與初始化

    2024年02月07日
    瀏覽(24)
  • valgrind基本功能介紹、基礎(chǔ)使用方法說明 valgrind基本功能介紹、基礎(chǔ)使用方法說明

    valgrind基本功能介紹、基礎(chǔ)使用方法說明_valgrind使用方法_HNU Latecomer的博客-CSDN博客 拷貝效果不好,請看原文。 1、Valgrind概述 Valgrind是一套Linux下,開放源代碼(GPL V2)的仿真調(diào)試工具的集合。 Valgrind由內(nèi)核(core)以及基于內(nèi)核的其他調(diào)試工具組成。內(nèi)核類似于一個框架(f

    2024年02月07日
    瀏覽(22)
  • docker基本使用方法

    docker基本使用方法

    Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實現(xiàn)虛擬化。Docker 使您能夠?qū)?yīng)用程序與基礎(chǔ)架構(gòu)分開,從而可以快速交付軟件。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減

    2024年02月13日
    瀏覽(26)
  • uCharts基本使用方法

    uCharts基本使用方法

    首先下載ucharts文件 https://gitee.com/uCharts/uCharts 下載下來看到有這些文件,小伙伴們可以先去示例項目里面看 引入u-charts.js文件,主要構(gòu)建就是new uCharts和配置context,其他的就跟其他charts配置一樣 可以看例子寫的,也可以自己試驗一波 方法寫入兩種方式 第一種方式 ucharts下載

    2024年02月04日
    瀏覽(18)
  • Wireshark基本使用方法

    Wireshark基本使用方法

    目錄 1、Wireshark介紹 1.1?Wireshark使用 1.2?支持的協(xié)議 2.Wireshark主要應(yīng)用 3.Wireshark安裝 ?4.Wireshark頁面介紹 4.1?分組列表 ?4.2?分組詳情 ?4.3?分組字節(jié)流 ?5.Wireshark導(dǎo)航 5.1?開始捕獲分組 5.2?停止捕獲分組 5.3 重新開始當(dāng)前捕獲 5.4、捕獲選項 5.5?打開以保存的捕獲文件 5.6?保存捕

    2024年02月13日
    瀏覽(20)
  • vim基本使用方法

    vim是linux上一個有多個編輯模式的編輯器。 這里主要介紹三種模式: 命令模式(Normal mode) 執(zhí)行命令的模式,主要任務(wù)就是控制光標(biāo)移動、復(fù)制和刪除。 插入模式(Insert mode) 可以進(jìn)行文字輸入,編寫代碼模式。 末行/底行模式(last line mode) 文件保存退出,文本替換、列出

    2024年02月12日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包