Go の package



1.package

所有的 .go 文件,除了空行和注释,都应该注明自己所属的包,每个包都应该放在一个单独的目录里,不能把多个包放在同一个目录里,也不能把同一个包的文件,分拆在不同的文件中。同一个目录下的所有的 .go 文件,都必须声明为同一个包名。

  • 包名都用小写
  • 默认包名和文件夹的名字相同
  • 包的路径,从 src 目录下面开始写
  • 要想方法在外边引用,首字母必须大写
  • 如果不想使用包的方法,可以匿名导入
  • 不要进行循环套用,即 A 引用 B ,B 引用 C,C 又引用 B 是不可以的
    在这里插入图片描述

文件1

package test01

import "fmt"

func Test() {
	fmt.Println("我是 Test 文件")
}

文件2

package main

import (
	"fmt"
	"pengzhao.xyz/testpackage/test01" // 如果
)

func main() {
	fmt.Println("这是main函数")
	test01.Test() // 执行test 命令
}

// 输出
这是main函数
我是 Test 文件


2. init() 函数

在这里插入图片描述

int() 函数没有参数,也没有返回值,函数在程序运行时被自动调用,不能主动的调用。

package test01

import "fmt"

func init() {
	fmt.Println("我是test01包里的 init 方法")
}

func Test() {
	fmt.Println("我是 Test 文件")
}
package main

import (
	"fmt"
	"pengzhao.xyz/testpackage/test01" // 如果
)

func init() {
	fmt.Println("我是main 包里的 init() 方法")
}

func main() {
	fmt.Println("这是main函数")
	test01.Test() // 执行test 命令
}

// 输出
我是test01包里的 init 方法
我是main 包里的 init() 方法
这是main函数
我是 Test 文件


如果多个包的数据相互调用,关系图如下:

在这里插入图片描述

posted @ 2021-04-10 19:17  沧海一声笑rush  阅读(36)  评论(0编辑  收藏  举报