[go语言]包

1 包package
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 执行外部命令包

本文来自:CSDN博客

感谢作者:sxt102400

查看原文:[go语言]包

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。