貌似再函数前,忘记写下包的内容了,现在补充一下。
go的每一个文件都是属于一个包的,也就是说go是通过包的形式来管理文件和项目目录结构的。
包的作用:
- 区分相同名字的函数、变量等标识符。
- 当程序文件很多时,可以很好的管理项目。
- 控制函数、变量等访问范围,即作用域。
包的打包基本语法:
package 包名
一般情况下,包名对应的是一个文件夹,与文件夹名相同,也可以不同,没有硬性要求
注意:package 指令需要再代码的第一行,然后才能是其他代码。
包的引用方法:
引用单个包:
import "包名“
引用多个包:
impotr (
"包名1"
"包名2"
.....
)
在import包时,路径从$GOPATH的src下开始,不用带src,编译器会自动从src下开始引入。
为了让其他包的文件,可以访问到本包的函数,则该函数名的首字母需要大写,类似其他语言的public,这样才能跨包访问。
在访问其他包函数时、变量时,其语法是 包名.函数名
如果包名较长,Go支持给包取别名,但取别名的包,原来的包名就不能再使用了。
impotr (
"包名1"
别名 "包名2"
.....
)
在同一个包下,不能有相同的函数名,也不能有相同的全局变量名,否则会报错。
impotr (
"包名1"
. "包名2"
.....
)
用一个.来放在包名前,可省略包名,比如
. "fmt"
在你调用fmt.Println("呵呵呵呵")的时候,可以直接写成
Println("呵呵呵呵")
用一个_放在包名的前面,如:
_ "github.com/ziutek/mymysql/godrv"
则表示仅仅是引用该包,而不直接调用里面的函数,仅仅调用该包里的init函数。
如果你要编译成一个可执行程序,就需要将这个包声明为main,即package main。
如果你写的是一个库,包名可以自定义。