這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
Go程式設計語言:支援並發、記憶體回收的編譯型系統級程式設計語言!本文主要是按照無聞的《Go 編程基礎》開源視頻學習並記錄筆記。
一、數組Array
- 定義數組的格式:
var<varName>[n]<type> (n>=0, n表示數組元素個數)
數組長度也是類型的一部分,因此具有不同長度的數組為不同類型
- 注意區分
指向數組的指標和指標數組
- 數組在Go中為實值型別
- 數組之間可以使用==或!=進行比較,但不可以使用< 或 >
- 可以使用
new來建立數組,此方法返回一個指向數組的指標
- Go支援多維陣列
樣本:
package mainimport "fmt" func main() { // var a [2]int a := [2]int{1,2} fmt.Println(a)}
列印結果:
[1 2]
new 建立資料
// var a [2]int a := [10]int{} a[1] = 2 fmt.Println(a) p := new([10]int) p[1] = 2 fmt.Println(p)
列印結果:
➜ run arr.go[0 2 0 0 0 0 0 0 0 0]&[0 2 0 0 0 0 0 0 0 0]
看一下,上邊有什麼不同嗎?第二行結果帶了一個地址符&
多維陣列
a := [2][3]int{ {1, 2, 3}, {4, 5, 6}} fmt.Println(a)
列印結果:
[[1 2 3] [4 5 6]]
冒泡排序法:
package mainimport "fmt" // 冒泡排序func main() { // ...可以表示不確定的元素數 a := [...]int{1, 4, 9, 2, 5, 0, 20, 13, 3} fmt.Println(a) // 計算數組的長度 num := len(a) for i := 0; i < num; i++ { // 外邊的迴圈,每迴圈一次,會將最大的值排在前邊 for j := i + 1; j < num; j++ { if a[i] < a[j] { temp := a[i] a[i] = a[j] a[j] = temp } } } fmt.Println(a)}