# go package
1> package 可以和目录名不一致
2> main func 必须在 main package 里
3> gopath 可以有多个,例如 D:\study\go;C:\Users\11435\Desktop\practice\go , go 会按照 gopath 查找 引用包
C:\Users\11435\Desktop\practice\go\src\queue\queue.go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| package queue
type Queue []interface{}
func (queue *Queue) Push(value interface{}) { *queue = append(*queue, value) }
func (queue *Queue) Pop() interface{} { head := (*queue)[0] *queue = (*queue)[1:] return head }
func (queue *Queue) IsEmpty() bool { return len(*queue) == 0 }
|
C:\Users\11435\Desktop\practice\go\src\queue\entry\main.go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| package main
import ( "fmt" "queue" )
func main() { q := queue.Queue{1} q.Push(2) q.Push(3) fmt.Println(q.Pop()) fmt.Println(q.Pop()) fmt.Println(q.IsEmpty()) fmt.Println(q.Pop()) fmt.Println(q.IsEmpty())
q.Push("a") q.Push("b") fmt.Println(q.Pop()) }
|