包其实是每个大型工程都会使用的模块化工具。

将相关的代码封装成一个包,给其他项目调用,提供不同的功能。

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函数。

最新文章

  1. CSV格式数据如何导入MySQL?
  2. 杂-lowbit
  3. 一个noconsole程序
  4. 解决 “无法安装 Visual Studio 2010 Service Pack 1,因为此计算机的状态不支持”
  5. 泛型集合List<T> Dictionary<K,V>
  6. C语言使用SQLite3数据库
  7. .net 平台下, Socket通讯协议中间件设计思路(附源码)
  8. RPC web service
  9. fastclick的介绍和使用
  10. POJ 2763 Housewife Wind 【树链剖分】+【线段树】
  11. [poj P1475] Pushing Boxes
  12. vue-cli的安装及使用
  13. POJ3273 Monthly Expense 2017-05-11 18:02 30人阅读 评论(0) 收藏
  14. EasyX_无法填充圆颜色的问题
  15. C实现线程池
  16. CWorkBooks、CWorkBook、CWorkSheets、CWorkSheet、CRange
  17. 51nod 1042 数字0-9的数量
  18. Spring框架中的单例Beans是线程安全的么
  19. python---Celery分布式任务队列了解
  20. Permission 0644 for .ssh/id_rsa Are Too Open 解决办法

热门文章

  1. Vivado Synth/Place Faild但是没有给出error信息
  2. 寻找下一个结点 牛客网 程序员面试金典 C++ java Python
  3. Linux下向windows传输文件【sz 文件】没有弹框提示下载到什么位置
  4. WPF进阶技巧和实战03-控件(4-基于范围的控件及日期控件)
  5. Spring源码学习之容器的基本实现(一)
  6. 一文读懂什么是渲染管线(7k字)
  7. js分支语句
  8. [JavaScript] 实现简单的表单数据校验功能
  9. 大爽Python入门教程 2-1 认识容器
  10. 理解PHP的运行机制