其他分享
首页 > 其他分享> > 2.14 Go之包的概念

2.14 Go之包的概念

作者:互联网

2.14 Go之包的概念

包的基本概念

  1. Go使用包组织源代码。

  2. 包(package)是多个Go源码的集合,是一种高级的代码复用方案。

  3. 任何源代码文件必须属于某个包,同时源码文件的第一行有效代码必须是package pacakgeName语句,通过该语句声明自己所在的包。

包名的特点:

目录树的组织形式,一般包的名称就是其源文件所在目录的名称。Go语言没有强制要求包名必须和其所在的目录名同名,但还是建议包名和所在目录同名

GOPATH/src/a/b/下定义一个包c。在包c的源码中只需声明为package c,而不是声明为package a/b/c,但是在导入c包时,需要带上路径,例如import "a/b/c"

包的习惯用法

包的导入

语法:

import "包的路径"

注意:

包导入的方法:

  • 单行导入

  • 多行导入


单行导入:

import "包 1 的路径"
import "包 2 的路径"

多行导入:

import (
   "包 1 的路径"
   "包 2 的路径"
)
包的导入路径
  • 全路径导入

  • 相对路径导入


全路径导入:

import "lab/a"

相对路径导入:

import "../a"

包的引用格式

  1. 标准引用格式

  2. 自定义别名引用格式

  3. 省略引用格式

  4. 匿名引用格式

标准引用格式
import "fmt"

包方法调用:

package main
import "fmt"
func main() {
   fmt.Println("Lucifer")
}
自定义别名引用格式

导入包时为包设置别名:

import F "fmt"

包方法调用:

package main
import F "fmt"
func main() {
F.Println("Lucifer")
}
省略引用格式
import ."fmt"

示例代码:

package main
import . "fmt"
func main() {
//不需要加前缀 fmt.
Println("Lucifer")
}
匿名引用格式

特点: 在引用某个包时,如果只是希望执行包初始化的init函数,而不使用包内部的数据,使用匿名引用格式

import _ "fmt"

示例代码:

package main
import (
_ "database/sql"
"fmt"
)
func main() {
fmt.Println("C语言中文网")
}

包加载

包加载过程:

包的加载过程实际就是一个递归的过程:

包初始化特点:

标签:包名,之包,package,fmt,导入,引用,Go,import,2.14
来源: https://www.cnblogs.com/JunkingBoy/p/15944353.html