包(package)是函数和数据的集合,类似android的jar或者C中的库,

我们创建一个包含冒泡排序算法的包 │ exp6.go └─algorithms bubble.go 其中 exp6.go 是测试包的程序,algorithms/bubble.go 是包程序 exp6.go 代码如下:

package main

import (
	"fmt"
	"github.com/panyingyun/gostudy/algorithms"
)

func main() {
	s := []int{10, 5, 6, 3}
	fmt.Println(s)
	bubble.Sort(s)
	fmt.Println(s)
}

bubble.go代码如下:

//bubblesort.go

package bubble

func Sort(values []int) {
	flag := true

	for i := 0; i < len(values)-1; i++ {
		flag = true

		for j := 0; j < len(values)-i-1; j++ {
			if values[j] > values[j+1] {
				values[j], values[j+1] = values[j+1], values[j]
				flag = false
			}
		}

		if flag == true {
			break
		}
	}
}

包中的导出函数必须以大写字母开头,这样引用这个包的文件才能访问这个函数 具体运行是,切换到algorithms, 运行 go install, 然后再go run exp6.go 即可

代码:

https://github.com/panyingyun/gostudy