文章目录
Go语言的包和文件夹一一对应,源码复用建立在包基础之上。Go语言的入口main()函数所在的包叫main,如果main包想使用别的包也必须进行引用。
go语言给我们提供了很多的内置包,如fmt,os,io等。
任何源代码文件必须属于某个包,同时源码文件的第一行有效代码必须是package pacakgeName
语句,声明自己所在的包。
包的基本概念
包借助了目录树的组织形式,一般包名就是目录名(可以不同)。
包的定义不包括目录路径,在引用时一般会使用全路径引用。比如:package c
,引入包时 import "a/b/c"
。
习惯用法:
- 包名一般小写,使用一个简短且有意义的名称
- 包名一般要和所在目录同名,包名中不能包含
-
等特殊符号。 - 包名一般使用域名作为目录名称,这样能保证包名的唯一性。
- main包为应用程序的入口包,编译不包含main包的源码文件时不会得到可执行文件
- 一个文件夹下的所有源码文件应该属于同一个包,同一个包下的源码文件不能放在多个文件夹下
包的导入
import "包的路径"
注意事项:
- import导入语句通常放在源码文件开头包声明语句的下面
- 包名需要用双引号括起来
- 是从GOPATH/src/后开始计算的,使用/进行路径分隔
单行导入
import "包1的路径"
import "包2的路径"
例如:
import "fmt"
import "os"
多行导入
"包1的名称"
"包2的名称"
例如:
import (
"fmt"
"os"
)
包的导入路径
分为两种,全路径导入和相对路径导入
全路径导入
绝对路径就是GOTROOT/src/
或GOPATH/src
后面包的存放地址
import "database/sql"
import "database/sql/driver"
这两个包都位于GOROOT/src
下
相对路径导入
只能导入GOPATH
下的包,标准包的导入只能使用全路径导入。
比如b和a在同一个目录下
//相对路径导入
import "../a"
包的引用格式
有以下四种:
- 标准引用格式
- 自定义别名引用格式
- 省略引用格式
- 匿名引用格式
标准引用格式
import "fmt"
使用fmt.
作为前缀来引用包中的方法
例如:
package main
import "fmt"
func main() {
fmt.Println("hello")
}
自定义别名引用格式
可以为包设置别名
import F "fmt"
其中F就是包fmt的别名,使用时可以用别名替代
例如:
package main
import F "fmt"
func main() {
F.Println("hello")
}
省略引用格式
import . "fmt"
相当于把fmt包直接合并到当前程序中。
例如: