[go语言]包

sxt102400 · · 3569 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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语言]包

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3569 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传