golang包

31 阅读2分钟

golang包

go语言通过包来管理代码结构,即package这一关键字。package xxx即可声明当前文件属于哪个包。

包注意点

  1. package main是独特的声明,表明他是项目的入口,同时在这个go文件里需要定义func main作为入口函数
  2. 自定义包一般是新建目录,然后下属的go文件的package为这个目录名即自定义包。引入时可以相对路径也可以绝对路径。 绝对路径的起点是src即源码目录。相对路径则不用多说了。
  3. 自定义包内,若是需要导出的成员,需要将首字母大写才可以认为是导出的,否则是不能杯go编译器识别为导出了成员,也就不能使用了。
  4. 同一个包内的的文件可以相互调用。

简单案例

下面这是一个简单的包案例

image.png t1是一个自定义的包

package doPkgTest

import "fmt"

var Tt = "ss"
var TestVar = 3

func Pri() {
   fmt.Println("pri")
}

而hello.go则package main

package main

import (
   "fmt"
   "test1/src/doPkgTest"
   // 引入包
)

func main() {
   fmt.Println("hello world")
   doPkgTest.Pri()
   fmt.Printf("%s,%d", doPkgTest.Tt, doPkgTest.TestVar)
   // 需要链式的 包名.成员  来调用。
}

了解函数初始化

init函数是go内置的函数,在每一个go文件内都有一个init的周期函数,他在函数执行之前被调用。

package2

package package2

import "fmt"

func Do2() {
   fmt.Println("do2")
}

func init() {
   fmt.Println("init package2")
}

package1

import (
   "fmt"
   "test1/src/package2"
)

func Do1() {
   fmt.Println("do1")
   package2.Do2()
}

func init() {
   fmt.Println("init package1")
}

main

package main

import "test1/src/package1"

func main() {
 //通过 内置的 init函数来了解调用和初始化的周期
 package1.Do1()

 //init package2
 //init package1
 //do1
 //do2
}

总结

本次文章学习了go的包的一些概念和使用。

结语

本次的文章到这里就结束啦!♥♥♥读者大大们认为写的不错的话点个赞再走哦 ♥♥♥

每天一个知识点,每天都在进步!♥♥