這一站我們要來跟大家分享 =="陣列 (Array)"==,陣列也是程式語言中不可或缺的一環,現在很多案子都會需要使用到陣列,同時也因為有了陣列讓我們在寫程式碼時方便了不少
接下來我會跟大家分享跟介紹,關於 Go Array 的 ==定義方式==、==陣列長度==、==陣列的型態==、==陣列元素==
那 Go 的 Array 定義方式有兩種分別是 "var"
跟 ":="
,雖然這兩種寫法的方式不一樣,但是其實它們的用法都是大同小異,以下用程式碼來說明
這是 Var 的寫法
var array_name = [length]datatype{values}
or
var array_name = [...]datatype{values}
這是 := 的寫法
array_name := [length]datatype{values}
or
array_name := [...]datatype{values}
雖然寫法不一樣,但是一定都要有個 ==變數名稱 == 接著要有 ==陣列長度== 跟 ==陣列型別== 以及 ==陣列的值==
變數名稱 = [陣列長度] 陣列型別 {陣列的值}
大概就是這樣的概念,那你會好奇為什麼陣列長度會有 ==[...]== 這樣的奇異三點,這三點代表的是什麼呢?
陣列長度相信[4] 大家一定都很清楚的可以知道,這就是表示陣列中會有 4 個值,那 [...] 這三點會計算你的陣列有多少的值,也就是說你可以不用規定它的陣列長度只要輸入那三點即可,因為 Go 的陣列如果你給予的長度過少比陣列的值還少的話它就會回報錯誤,如以下所示
package main
import ("fmt")
func main() {
var arr1 = [2]int{1,2,3}
fmt.Println(arr1)
}
它的輸出結果為
那如果例子對調,換成是陣列長度多於陣列的值的話,那它又會如何顯示呢?
package main
import ("fmt")
func main() {
var arr1 = [4]int{1,2,3}
fmt.Println(arr1)
}
顯示結果
沒錯,多的地方它直接補 0 進去陣列裡面
還有如果你想單純印出陣列的長度,你可以這麼做
package main
import ("fmt")
func main() {
var arr1 = [5]string{"Volvo", "BMW", "Ford", "Mazda","God"}
arr2 := [...]int{1,2,3,4,5,6,7,8,9}
fmt.Println(len(arr1))
fmt.Println(len(arr2))
}
輸出結果
由此可知,只要輸出加個 len(arr1) 它就會印出該陣列的長度,那如果你想要同時印出陣列長度與陣列的值,那也沒有問題
package main
import ("fmt")
func main() {
var arr1 = [5]string{"Volvo", "BMW", "Ford", "Mazda","God"}
arr2 := [...]int{1,2,3,4,5,6,7,8,9}
fmt.Println(len(arr1),arr1)
fmt.Println(len(arr2),arr2)
}
輸出結果
package main
import ("fmt")
func main() {
//int 整數
var arr1 = [3]int{1,2,3}
//string 字串
var arr2 = [3]string{"Jack","Peter","Max"}
//float64 浮點數
var arr3 = [3]float64{1.2,3.4,5.6}
//bool 布林值
var arr4 = [2]bool{true,false}
fmt.Println(arr1)
fmt.Println(arr2)
fmt.Println(arr3)
fmt.Println(arr4)
}
以上就是 Go Array 陣列的各種型別
如果你想要直接取的該陣列的元素,該如何做呢? Go 語言的方式我們用程式碼來展示
package main
import ("fmt")
func main() {
var arr1 = [3]int{1,2,3}
fmt.Println(arr1[2])
}
輸出結果
其實滿好懂得,就是印出陣列中的第二個元素
即便是陣列長度已經高過陣列的值,它也可以抓取到新的空值例如
package main
import ("fmt")
func main() {
var arr1 = [4]int{1,2,3}
fmt.Println(arr1[0])
fmt.Println(arr1[1])
fmt.Println(arr1[2])
fmt.Println(arr1[3])
}
輸出結果
就像這個樣子,它也會自動把 0 補進去。
還有就是你也可以自己設定陣列元素的索引就像這個樣子
package main
import ("fmt")
func main() {
arr1 := [5]int{1:10,3:40,2:20}
fmt.Println(arr1)
}
輸出結果
程式解釋圖
變數名稱 := [陣列長度]陣列型別{陣列索引位置a:陣列的值a, 陣列索引位置b:陣列的值b}
總結來說冒號左邊是陣列索引的位置,右邊是陣列的值
以上就是 Go 陣列以及我對於 Go 的陣列所學習到的知識,希望大家都可以有所收穫
W3C - Go Array
https://www.w3schools.com/go/go_arrays.php