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...