【Go语言学习笔记】包
阅读原文时间:2021年12月08日阅读:6

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

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

GO的设计是将一个文件夹看成一个包,虽然不一定非要用文件夹的名字,但是比较建议。

  • 同一个文件夹下只能有一个包名。

  • 同文件夹下可以自由调用,不用引用。

  • 引入其它包,只能调用它提供的首字母大写的函数。

    //方法1
    import "calc"
    import "fmt"

    //方法2
    import (
    "calc"
    "fmt"
    )

main包是程序的入口,即编译必须从这个包开始。

且main包中必须有且只有一个main()函数,编译的时候可以用包名编译,也可以用文件编译。

显而易见,这是个初始化函数。在你引用包的时候,这个函数会被执行。在main函数之前。

如果你引用了多个包,会按栈的顺序,执行对应的init函数。

点操作

import (
    //这个点操作的含义是这个包导入之后在你调用这个包的函数时,可以省略前缀的包名
    . "fmt"
)

func main() {
    Println("hello go")
}

别名操作

在导⼊时,可指定包成员访问⽅式,⽐如对包重命名,以避免同名冲突:

import (
    io "fmt" //fmt改为为io
)

func main() {
    io.Println("hello go") //通过io别名调用
}

_操作

有时,用户可能需要导入一个包,但是不需要引用这个包的标识符。在这种情况,可以使用空白标识符_来重命名这个导入:

import (
    _ "fmt"
)

_操作其实是引入该包,而不直接使用包里面的函数,而是调用了该包里面的init函数。