[go语言]包
1)为什么使用包
go语言使用package来组织程序间的结构,包是数据与函数的集合。
每一个包相当于一个模块。包可以被其他的包import引入后使用其中的类型,变量和函数。
2)导入包
import "包名"
import 包别名 "包名"
import _ "包名" 这儿使用`_`的意思是引入后面的包名但是不直接使用这个包中定义的函数,变量等资源。
impoert . "包名" 指在当前目录直接使用包中的类型或者方法,可以省略包名
2)新建包
按照惯例, 包应当以小写的单个单词来命名,且不应使用下划线或大小写混合。
使用package定义一个包,定义的时候包名和所在目录一致,但是不必和所在文件名保持一致。
工程目录需要添加到GOPATH的变量中。这样在"$GOPATH/src"下面的目录会生产一个可用的目录名的pkg。
比如,在mypack目录新建mypack_1.go文件:
文件src/mypack/mypack_1.go
package mypack func Dosomething() { } 文件src/main.go package main import ( "fmt" "mypack" ) func main() { fmt.Println("Hello World!") mypack.Dosomething() }
2 包的运行方式
包的查找
首先,是查找GO安装目录(GOROOT),根据import的包名,编译"$GOROOT/src/pkg/"包名目录下的代码。
其次,继续寻找workspace(GOPATH)目录,根据import的包名,编译"$GOPATH/src/pkg包名" 目录下的代码。
当import的目录使用"/"来分割时候,表示多层目录。
包的运行
首先,会根据import语句加载其他包。
其次,会根据const语句来创建常量。
再次,会根据var语句来创建变量。
最后,会根据init函数执行初始化。
当上面一切就绪后,运行main,main()函数,执行程序。
3 包的修饰
1)首字母大写:所有的变量,如类型,全局变量,共有函数等首字母大写时是可导出的,在包外可调用。
2)首字母小写:所有的变量,如类型,全局变量,私有函数等函数名首字母小写。不可导出的,只在包内部调用。
4 常用的包
fmt 格式化的IO输出 常用方法:Print() Println() Printf() Scanf()
io 原始的IO操作
bufio 实现缓冲的IO操作
sort 对数组和集合的排序
strconv 字符串和基本数据类型间的转换
os 操作系统接口包
sync 同步包
flag 命令行解析
templete 数据模板
http HTTP服务实现包
reflect 反射包
exec 执行外部命令包
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。