go入门8 --- 包

Posted yangshixiong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go入门8 --- 包相关的知识,希望对你有一定的参考价值。

go中所有的代码都必须放在package中,对于package

  • 源文件头部以 "package <name>" 声明包名称。
  • 包由同一目录下的多个源码文件组成。
  • 包名类似 namespace,与包所在目录名、编译文件名无关。
  • 目录名最好不用 main、all、std 这三个保留名称;
  • 可执行件必须包含 package main,入口函数 main;

包中成员以名称的首字母是否大写来决定访问权限

  • 首字母大写,可被包外访问;
  • 首字母小写,近包内成员可以访问。

 使用包之前,必须先用import关键字导入,注意不要形成倒入循环,也就是两个包相互导,前段时间,就遇到了这个错误

跟python类似,也可以给导入的包起别名,也可以全部导入,另外,go中如果导入的包没有使用,会报错,如果必须要到,可以使用_进行忽略,例如

import _ "os"

这个就会执行包内的初始化函数

对于初始化函数,每个源文件都可以定义一个或多个初始化函数,编译器不能保证初始化函数执行次序,初始化函数在单一线程中只会执行一次,并且是在包的全部全局变量执行之后,main.main才会被执行,初始化函数是无法调用的

func main() {
    fmt.Println("main")
}
func init(){
    fmt.Println("init")
}
//
init
main

至此,go的入门算是写完啦

以上是关于go入门8 --- 包的主要内容,如果未能解决你的问题,请参考以下文章

go语言入门:包

go语言入门:包

Go 入门很简单:如何在 Go 中使用日志包

Go语言--第8章 包(package)

Go go.mod入门

Go go.mod入门