Golang語言入門 陣列(Array)的初步使用

2021-10-08 20:19:04 字數 3495 閱讀 9357

1.1 什麼是陣列

go 語言提供了陣列型別的資料結構。 陣列是具有相同唯一型別的一組已編號且長度固定的資料項序列,這種型別可以是任意的原始型別例如整形、字串或者自定義型別。

陣列元素可以通過索引(位置)來讀取(或者修改),索引從0開始,第乙個元素索引為 0,第二個索引為 1,以此類推。陣列的下標取值範圍是從0開始,到長度減1。

陣列一旦定義後,大小不能更改。

宣告和初始化陣列

需要指明陣列的大小和儲存的資料型別。

var variable_name [size] variable_type
示例**:

var balance [10] float32

var balance = [5]float32

初始化陣列中 {} 中的元素個數不能大於 中的數字。 如果忽略 中的數字不設定陣列大小,go 語言會根據元素的個數來設定陣列的大小:

var balance = float32

balance[4] = 50.0

陣列的其他建立方式:

var a [4] float32 // 等價於:var arr2 = [4]float32{}

fmt.println(a) // [0 0 0 0]

var b = [5] string

fmt.println(b) // [ruby 王二狗 rose ]

var c = [5] int // byte

fmt.println(c) // [65 66 67 68 69]

d := [...] int// 根據元素的個數,設定陣列的大小

fmt.println(d)//[1 2 3 4 5]

e := [5] int // [0 0 0 0 100]

fmt.println(e)

f := [...] int // [1 0 0 0 1 0 0 0 0 1]

fmt.println(f)

訪問陣列元素

float32 salary = balance[9]
示例**:

package main

​import "fmt"

​func main()

​ /* 輸出每個陣列元素的值 */

for j = 0; j < 10; j++

}

執行結果:

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

陣列的長度

通過將陣列作為引數傳遞給len函式,可以獲得陣列的長度。

示例**:

package main

​import "fmt"

​func main()

fmt.println("length of a is",len(a))

​}

執行結果:

length of a is 4
您甚至可以忽略宣告中陣列的長度並將其替換為…讓編譯器為你找到長度。這是在下面的程式中完成的。

示例**:

package main

​import (

"fmt")​

func main() // ... makes the compiler determine the length

fmt.println(a)

}

遍歷陣列:

package main

​import "fmt"

​func main()

for i := 0; i < len(a); i++

}

使用range遍歷陣列:

package main

​import "fmt"

​func main()

sum := float64(0)

for i, v := range a

fmt.println("\nsum of all elements of a",sum)

}

如果您只需要值並希望忽略索引,那麼可以通過使用_ blank識別符號替換索引來實現這一點。

for _, v := range a
go 語言支援多維陣列,以下為常用的多維陣列宣告語法方式:

var variable_name [size1][size2]...[sizen] variable_type

var threedim [5][10][4]int

三維陣列

a = [3][4]int ,   /*  第一行索引為 0 */

, /* 第二行索引為 1 */

/* 第三行索引為 2 */

}int val = a[2][3]

陣列是值型別 go中的陣列是值型別,而不是引用型別。這意味著當它們被分配給乙個新變數時,將把原始陣列的副本分配給新變數。如果對新變數進行了更改,則不會在原始陣列中反映。

package main

​import "fmt"

​func main()

b := a // a copy of a is assigned to b

b[0] = "singapore"

fmt.println("a is ", a)

fmt.println("b is ", b)

}

執行結果:

a is [usa china india germany france]  

b is [singapore china india germany france]

陣列的大小是型別的一部分。因此[5]int和[25]int是不同的型別。因此,陣列不能被調整大小。不要擔心這個限制,因為切片的存在是為了解決這個問題。

package main

​func main()

var b [5]int

b = a //not possible since [3]int and [5]int are distinct types

}

arr陣列的方法

1.concat 方法用於合併兩個或多個陣列 let num1 5 let num2 6,7 let nums num1.concat num2 alert nums num1 0 push 4 alert nums 2.filter 方法建立乙個新陣列,其包含通過所提供函式實現的測試的所有元素 l...

GO語言入門Golang進入HelloWorld

目錄 golang 是乙個跨平台的新生程式語言.今天小白就帶大家一起攜手走進 golang 的世界.第 1 課 在我們開始學習 go程式語言的基礎構建模組前,我們吸納來了解一下 go 語言的程式結構.go 語言的基礎組成有以下幾個部分 包宣告引入包函式變數語句 表示式注釋 package main ...

golang語言學習 5 陣列

陣列是向來是程式語言中的乙個很重要的資料結構之一。在golang中陣列是乙個值型別。先來看看golang中陣列是怎麼定義的 var arr n type n為陣列長度,type為陣列的儲存型別再來看一下陣列的宣告方式 常規的宣告方法 var a 3 int 長度為3,每個元素為乙個整型的陣列 var...