GO语言的package怎么使用

以Python作为对比,在Python中如果要使用自己写的库,该库可以在当前或当前子目录下,假设在当前目录下,你需要在当前目录下新建一个__init__.py的空文件,这样在当前目录下的工作文件中可以使用import xxx导入自己写的库。Go的package关键字定义该文件所属包,然后使用import关键字调用包。

以实例讲解,首先有如下的目录结构,当前在GOLANG目录下,learn.go是主文件,GOLANG下面有一个say的文件夹,say文件夹下有一个test.go文件
在这里插入图片描述
其中的learn.go文件的内容如下,正常输出Hello world!!!

//learn.go
package main

import (
	"fmt"
)

func main() {
	fmt.Println("Hello world !!!")
}

现在我想调用test.go文件内的方法。先看test.go文件内容有什么

//test.go
package say

import "fmt"

func Dog(name string) string {
	fmt.Println("This is Dog function.")
	return name + "is Dog"
}

package say的say是该文件所在的包目录。里面的Dog函数的首字母一定要大写,因为go规定了首字母大写才能暴露到外部,否则learn.go文件不能找到该函数。
那learn.go文件怎么调用呢?learn.go文件的内容如下

//learn.go
package main

import (
	"GOLANG/say"
	"fmt"
)

func main() {
	fmt.Println("Hello world !!!")
	result := say.Dog("小黑")
	fmt.Println(result)
}

import "GOLANG/say"导入,GOLANG是模块名称,后面会讲到,在这里使用当前文件所在的目录名,say是package包
好了运行一下,结果如下

learn.go:5:2: package GOLANG/say is not in GOROOT (C:\Program Files\Go\src\GOLANG\say)

报错了,说learn.go文件的第五行中GOLANG/say包没有在GOROOT环境变量目录下,到该C:\Program Files\Go\src\目录下发现有很多文件夹,那些文件夹大多是我们常使用的包,这样我们就知道了我们常用的包原来都在这里
我们回到learn.go所在的GOLANG目录下的终端,使用命令go mod init "模块名称",模块名称随意取,这里使用文件夹的名称
在这里插入图片描述
然后在GOLANG目录下就生成了一个文件go.mod
在这里插入图片描述
再运行一下learn.go,结果如下,运行成功
在这里插入图片描述
到这里就知道怎么使用package语句了,就是一个申明所属包,而import参数和Python差不多
那么go mod init命令有没有影响了什么环境变量呢?
使用命令go env可以查看所有关于go的环境变量,在使用go mod init命令之前和之后,环境变量都没有变,说明该命令只是生成了一个文件,那我们可以手动创建吗?
查看生成的go.mod文件内容如下

module GOLANG

go 1.16

我们删掉go.mod文件,程序就会报错,那我们手动创建一个go.mod文件,内容相同,运行learn.go正常
我们再把go.mod文件的模块名修改,将GOLANG改为mylove
在这里插入图片描述
在learn.go文件中修改导入名称,程序任然正常
在这里插入图片描述

我们看看官方的包大概是什么形状的

到常用的fmt包下面看看
在这里插入图片描述
其中的print.go文件定义了很多有关I/O输入输出的方法,看看该文件,其中的部分结构如下
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值