【Go语言学习笔记】包
2024-09-08 11:35:05
包其实是每个大型工程都会使用的模块化工具。
将相关的代码封装成一个包,给其他项目调用,提供不同的功能。
GO的设计是将一个文件夹看成一个包,虽然不一定非要用文件夹的名字,但是比较建议。
- 同一个文件夹下只能有一个包名。
- 同文件夹下可以自由调用,不用引用。
- 引入其它包,只能调用它提供的首字母大写的函数。
//方法1
import "calc"
import "fmt"
//方法2
import (
"calc"
"fmt"
)
main包
main包是程序的入口,即编译必须从这个包开始。
且main包中必须有且只有一个main()函数,编译的时候可以用包名编译,也可以用文件编译。
init函数
显而易见,这是个初始化函数。在你引用包的时候,这个函数会被执行。在main函数之前。
如果你引用了多个包,会按栈的顺序,执行对应的init函数。
特殊操作
点操作
import (
//这个点操作的含义是这个包导入之后在你调用这个包的函数时,可以省略前缀的包名
. "fmt"
)
func main() {
Println("hello go")
}
别名操作
在导⼊时,可指定包成员访问⽅式,⽐如对包重命名,以避免同名冲突:
import (
io "fmt" //fmt改为为io
)
func main() {
io.Println("hello go") //通过io别名调用
}
_操作
有时,用户可能需要导入一个包,但是不需要引用这个包的标识符。在这种情况,可以使用空白标识符_来重命名这个导入:
import (
_ "fmt"
)
_操作其实是引入该包,而不直接使用包里面的函数,而是调用了该包里面的init函数。
最新文章
- CSV格式数据如何导入MySQL?
- 杂-lowbit
- 一个noconsole程序
- 解决 “无法安装 Visual Studio 2010 Service Pack 1,因为此计算机的状态不支持”
- 泛型集合List<;T>; Dictionary<;K,V>;
- C语言使用SQLite3数据库
- .net 平台下, Socket通讯协议中间件设计思路(附源码)
- RPC web service
- fastclick的介绍和使用
- POJ 2763 Housewife Wind 【树链剖分】+【线段树】
- [poj P1475] Pushing Boxes
- vue-cli的安装及使用
- POJ3273 Monthly Expense 2017-05-11 18:02 30人阅读 评论(0) 收藏
- EasyX_无法填充圆颜色的问题
- C实现线程池
- CWorkBooks、CWorkBook、CWorkSheets、CWorkSheet、CRange
- 51nod 1042 数字0-9的数量
- Spring框架中的单例Beans是线程安全的么
- python---Celery分布式任务队列了解
- Permission 0644 for .ssh/id_rsa Are Too Open 解决办法