有上過資料結構的人都知道 List,Go 有實作喔!不過不同的是他不是基礎型別,需要特別引入,讓我們一起來看看。
List
先來看看 An Introduction to Programming in Go 上的範例
package main
import ("fmt" ; "container/list")
func main() {
var x list.List
x.PushBack(1)
x.PushBack(2)
x.PushBack(3)
for e := x.Front(); e != nil; e=e.Next() {
fmt.Println(e.Value.(int))
}
}
首先看到的就是很有意思的寫法,import ("fmt" ; "container/list"),其實他只是引入兩個 lib 一個是 fmt 另一個是 container/list 利用 ; 把他寫成一行。
先是建立 List x 然後利用 PushBack 函式從後面填入,最後利用 For 迴圈將一個一個取出。
這樣說可能不好懂,我們來看一下圖
除了 List 外還有 Heap 喔!有興趣的可以參考看看。
詳細請參考
https://golang.org/pkg/container/list/
https://golang.org/pkg/container/heap/