• 1.1. 包的基本概念

go 的每一个文件都是属于一个包的,也就是说 go 是以包的形式来管理文件和目录结构的。

  • 某个go文件属于某个包,在第一行使用:package 包 名
  • 导出某个变量或者函数。需要把变量名或函数名首字母大写。类似其它语言的 public。
  • 引入包:import "包的路径"。这里包的路径是src下面的路径。默认编译器从GOPATH/src 下开始找import的包,所以一定要配置这个环境变量。(其实是先找$GOROOT,再找$GOPATH)

示例如下:在 src/hanShuDemo/utils/mathUtil.go 文件第一行是package utils 。下面通过"hanShuDemo/utils"就可以导入mathUtil.go的内容。

import (
    "fmt"
    "hanShuDemo/utils"
)

func main() {
    var num1 int  = 5
    var num2 int  = 8
    fmt.Println(utils.Add(num1,num2))
    fmt.Println("num1 = ",num1,"; num2 = ",num2)
}
  • 在给一个文件打包时,该包对应一个文件夹,比如这里的 utils 文件夹对应的包名就是 utils, 文件的包名通常和文件所在的文件夹名一致,一般为小写字母。
  • 如果包名较长,Go 支持给包取别名, 注意细节:取别名后,原来的包名就不能使用了。

如下:给utils包起了个别名ut,下面调用的时候就使用ut做报名调用。ut.Add(num1,num2)

import (
    "fmt"
    ut "hanShuDemo/utils"
)

func main() {
    var num1 int  = 5
    var num2 int  = 8
    fmt.Println(ut.Add(num1,num2))
    fmt.Println("num1 = ",num1,"; num2 = ",num2)
}
  • 如果你要编译成一个可执行程序文件,就需要将这个包声明为 main , 即 package main 。这个就是一个语法规范,如果你是写一个库 ,包名可以自定义。

编译的时候先cd 到GOPATH环境变量所在的目录。然后运行命令:go build main函数所在文件夹的路径。例如上面main函数是在src/hanShuDemo/utils文件夹下。那就运行:go buildhanShuDemo/utils

results matching ""

    No results matching ""