一文明白Go模块的常用导入方法

项目结构

环境配置

go 命令依赖一个重要的环境变量:$GOPATH,它表示GO项目的路径,如下设置

Python
export GOPATH=/home/t/gospace
1
2
export GOPATH = / home / t / gospace
 

对于GOPATH来说,允许多个项目目录(Unix中为“:”,Windows中为“;”)。

项目目录

在项目目录中,一般包含三个文件夹,分别为srcpkgbin。各个文件夹功能如下,

  • src 存放golang源码
  • pkg 存放编译后的文件
  • bin 存放编译后可执行的文件

模块导入

在golang中,模块导入包括两种导入方式:相对路径和绝对路径。

相对导入

当前文件同一目录的model目录,但是不建议这种方式来import

Python
import ( "./test1" "../test2" )
1
2
3
4
5
import (
     "./test1"
     "../test2"
)
 

绝对导入

前提条件需要把该项目加入到golang的GOPATH中,

Python
import ( "project/module1" "project/module2/t" )
1
2
3
4
5
import (
     "project/module1"
     "project/module2/t"
)
 

import的其他操作

点操作

点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,

Python
import . "fmt" func test() { Println("test") }
1
2
3
4
5
6
import . "fmt"
 
func test ( ) {
     Println ( "test" )
}
 

别名操作

别名操作就是把包命名成另一个名字

Python
import f "fmt" func test() { f.Println("test") }
1
2
3
4
5
6
import f "fmt"
 
func test ( ) {
     f . Println ( "test" )
}
 

_操作

操作其实是引入该包,而不直接使用包里面的函数,而是调用了该包里面的init函数

文件1: module/module1.go

Python
package module1 import "fmt" func init() { fmt.Println("this is module1") }
1
2
3
4
5
6
7
8
package module1
 
import "fmt"
 
func init ( ) {
   fmt . Println ( "this is module1" )
}
 

文件2: main.go

Python
package main import ( "fmt" _ "module" ) func main() { fmt.Println("this is a test") }
1
2
3
4
5
6
7
8
9
10
11
package main
 
import (
     "fmt"
     _ "module"
)
 
func main ( ) {
     fmt . Println ( "this is a test" )
}
 

output:

Python
this is module1 this is a test
1
2
3
this is module1
this is a test
 

转自 https://www.cnblogs.com/coder2012/p/4816894.html




  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值