嗨,連假後的第一天上班大家還好嗎...(›´ω`‹ )...
在 Day3 有提到會在更仔細的介紹 Slice,今天就準備來進行任務。
如果都準備妥妥的,那我們就開始吧 ─=≡Σ(((っ゚∀゚)っ
要講到 slice 就需要先提到 array。
array 是一個集結相同資料類型的結合體,如果有學過程式語言的人,相信對 array 一定不陌生,但是在 Go 的 array 有一點點不一樣。
在 Go 內的 array 一但被建立,就無法改變長度及裡面的資料屬性。
package main
import "fmt"
func main() {
pet := [3]string{"Dog", "Cat", "Bird"}
fmt.Println(pet)
}
// => [Dog, Cat, Bird]
如果我想闖關偷加一個資料進去 pet array 就會得到錯誤訊息 array index 3 out of bounds [0:3]
如果有時候不確定 array 到底有幾個值,也可以使用下面的方式
[…]int{1, 2, 3, 4} // 在編譯時他會自動去計算 {} 內有幾個元素
這時候就會思考,這麼不彈性的 array 該怎麼用!
但其實不用擔心,這個 array 並不是我們常見的其他程式語言內的 array,真正比較像 array 的 array 應該是 slice(登愣)!
slice 可以任意增加陣列內的元素及長度,與 array 同樣以 []
定義,但不同的是不用在 []
內寫上數量。
如何定義 slice:
cats := []string{"BuiBui", "MeiMei"}
也能夠透過 make
方法長出一個 slice
// func make([]T, len, cap) []T
func make([]string, len, cap)
至於 len
跟 cap
又是在做什麼?
請容許我搬到下一篇再來繼續解釋 (›´ω`‹ )...
時間沒抓好,但又不想草草了事,就讓我任性的放任這篇分成上下集吧!
有任何問題歡迎與我告知 :)