go package 相关介绍

简介: go package 相关介绍

1. 包的导入两种写法

import (
  "fmt"
  "log"
)
func main()  {
  fmt.Println("test import package")
  log.Default()
}
import "fmt"
import "log"
func main() {
  fmt.Println("test import package")
  log.Default()
}

2. 如果使用包名称一样,需要给其中一个添加别名

package main
import (
  "demo/pack/p1"
  p12 "demo/pack1/p1"
  "fmt"
  "log"
)
func main() {
  fmt.Println("test import package")
  log.Default()
  p1.Test1()
  p12.Test4()
}

3. 如果使用方法不想添加包名,可以通过. 的方式import(不推荐,可能存在相同的方法),会提示错误

package main
import (
  "demo/pack/p1"
  . "demo/pack1/p1"
  "fmt"
  "log"
)
func main() {
  fmt.Println("test import package")
  log.Default()
  p1.Test1()
  Test4()
}

4. 如果只想初始化某个包,不想使用里面的函数,可以使用_ 方式 import

_ "demo/pack1/p1"

5. 所有的代码包init 函数会在 main 函数执行前,执行完毕。 先执行import 中的init 方法(多个包之间按import 顺序,和调用里面的函数顺序 无关)

package main
import (
  "demo/package/p1"
  . "demo/package1/p1"
  "fmt"
)
func init()  {
  fmt.Println("this is main package init")
}
func main() {
  Test4()
  p1.Test1()
}
package p1
import "fmt"
func init()  {
  fmt.Println("this is  p1 package init")
}
func main()  {
}
func Test1() {
  fmt.Println("this is package 1 test1 func")
}
package p1
import "fmt"
func init()  {
  fmt.Println("this is  p4 package init")
}
func main()  {
}
func Test4()  {
  fmt.Println("this is package p1 func test4")
}

输出结果:

this is p1 package init

this is p4 package init

this is main package init

this is package p1 func test4

this is package 1 test1 func


具体代码仓库:https://github.com/hufeng903/go-demo/tree/master

相关文章
|
2月前
|
存储 Go
Golang语言基于go module方式管理包(package)
这篇文章详细介绍了Golang语言中基于go module方式管理包(package)的方法,包括Go Modules的发展历史、go module的介绍、常用命令和操作步骤,并通过代码示例展示了如何初始化项目、引入第三方包、组织代码结构以及运行测试。
46 3
|
6月前
|
Go 开发者
Go语言Package:构建模块化、高效的代码
Go语言Package:构建模块化、高效的代码
83 0
go: finding module for package
go: finding module for package
105 0
|
Go
【golang】解决:missing go.sum entry for module providing package
【golang】解决:missing go.sum entry for module providing package
1607 0
|
设计模式 Go Python
层次分明井然有条,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang包管理机制(package)EP10
Go lang使用包(package)这种概念元素来统筹代码,所有代码功能上的可调用性都定义在包这个级别,如果我们需要调用依赖,那就“导包”就行了,无论是内部的还是外部的,使用import关键字即可。但事情往往没有那么简单,Go lang在包管理机制上走了不少弯路,虽然1.18版本的包管理已经趋于成熟,但前事不忘后事之师,我们还是需要了解一下这段历史。
层次分明井然有条,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang包管理机制(package)EP10
|
缓存 IDE Go
Go 编程 | 连载 21 - Go Modules 和 Package
Go 编程 | 连载 21 - Go Modules 和 Package
Go 编程 | 连载 21 - Go Modules 和 Package
|
Go
Go语言基础语法(package)-5
章节 package 作用及定义 1.package 作用及定义 package 是 最基本的分发单位 和 工程管理中依赖关系 的体现 每个GO语言源代码文件开头都拥有一个package声明,表示源码文件所属的代码包 要生成GO语言可执行程序,...
1228 0
|
Go 开发工具
Go1.13:使用go mod 管理依赖, 提示cannot find module providing package或cannot find main module
Go1.13:使用go mod 管理依赖, 提示cannot find module providing package或cannot find main module
644 0
Go1.13:使用go mod 管理依赖, 提示cannot find module providing package或cannot find main module
|
缓存 搜索推荐 编译器
Go 语言入门很简单 -- 17. Go Package #私藏项目实操分享#
Go 语言入门很简单 -- 17. Go Package #私藏项目实操分享#
162 0
Go 语言入门很简单 -- 17. Go Package #私藏项目实操分享#