Go Module的基本使用

go module是类似于java中的maven,是包的管理工具,在没有这个go module之前,都是配置本地的GOPATH,创建的每个项目也都必须创建在这个GOPATHsrc目录下,且项目的go文件不能重名
go module是在go1.1.1版本推出的

开启go module

在本地上打开终端执行go env
在这里插入图片描述
可看到环境的相关配置:

GO111MODULE:默认是为空,有三个值,on(开启),off(关闭),auto(自动)
GOPROXY:配置下载包的地址,我们可以更换为国内镜像源

  • 执行 go env -w GO111MODULE=on设置go module为开启状态
  • 设置为国内镜像源,这是由国内七牛云提供 go env -w GOPROXY=https://goproxy.cn,direct

这样go module就开启好了,开启之后如何使用?先执行go mod help,不管在学什么只要是有命令行的,先执行help命令。
在这里插入图片描述

可看到其中是有初始化命令,而go module是用来管理项目的第三方包的,所以我们可以创建一个文件夹,在文件夹中初始化
在这里插入图片描述

可看出新的文件 go.mod

用goland打开项目

(1)设置镜像地址

不设置的话会报exec: “git”: executable file not found in %PATH%一.git
在这里插入图片描述

(2)导入Gin包检查go module是否使用正常
go get -u github.com/gin-gonic/gin
PS C:\Users\X\Desktop\waodaoxr> go get -u github.com/gin-gonic/gin
go: downloading golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
go: downloading github.com/goccy/go-json v0.9.7
go: downloading github.com/pelletier/go-toml/v2 v2.0.1
go: downloading google.golang.org/protobuf v1.28.0
go: downloading github.com/go-playground/validator/v10 v10.10.0
go: downloading github.com/pelletier/go-toml v1.9.5
go: downloading github.com/pelletier/go-toml/v2 v2.0.6
go: downloading github.com/go-playground/validator/v10 v10.11.1
go: downloading github.com/goccy/go-json v0.9.11
go: downloading golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069
go: downloading github.com/go-playground/validator v9.31.0+incompatible
go: downloading github.com/ugorji/go v1.2.7
go: downloading golang.org/x/net v0.2.0
go: downloading golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97
go: downloading github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421
go: downloading golang.org/x/crypto v0.3.0
go: downloading golang.org/x/sys v0.2.0
go: downloading golang.org/x/text v0.4.0
go: added github.com/gin-contrib/sse v0.1.0
go: added github.com/gin-gonic/gin v1.8.1
go: added github.com/go-playground/locales v0.14.0
go: added github.com/go-playground/universal-translator v0.18.0
go: added github.com/go-playground/validator/v10 v10.11.1
go: added github.com/goccy/go-json v0.9.11
go: added github.com/json-iterator/go v1.1.12
go: added github.com/leodido/go-urn v1.2.1
go: added github.com/mattn/go-isatty v0.0.16
go: added github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: added github.com/modern-go/reflect2 v1.0.2
go: added github.com/pelletier/go-toml/v2 v2.0.6
go: added github.com/ugorji/go/codec v1.2.7
go: added golang.org/x/crypto v0.3.0
go: added golang.org/x/net v0.2.0
go: added golang.org/x/sys v0.2.0
go: added golang.org/x/text v0.4.0
go: added google.golang.org/protobuf v1.28.1
go: added gopkg.in/yaml.v2 v2.4.0
PS C:\Users\X\Desktop\waodaoxr>

下载成功,可查看上面初始化创建的go.mod文件,可看到导入了一些包

(3)使用Gin
package main

import  "github.com/gin-gonic/gin"
func main()  {
	engine := gin.Default()
	engine.GET("/test", func(context *gin.Context) {
		context.JSON(200,gin.H{
			"message":"the project is test module gin",
		})
	})
	engine.Run()
}


(4)执行、发送请求

在这里插入图片描述

go module的基本命令

(1)go mod init 项目名称:初始化命令
(2)go mod download : 下载modules到本地cache,路径是go env中的GOMODCACHE,跟java的maven,也就是你的本地仓库
(3)go mod tidy : 添加缺失或删除没有使用的包
(4)go mod verify:验证依赖是否正确
(5)go mod why:查找依赖
(6)go mod edit:可执行go help mod edit查看用法,也可到官网查看,主要也是用来操作go.mod文件的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言中也可以使用github.com/go-redis/redis包里的GeoRadius函数来实现根据经纬度和半径获取地理位置信息的功能。该函数的参数与redis命令的参数基本一致,包括:key、longitude、latitude、radius、unit、以及可选参数(例如是否只返回距离信息、是否按距离排序等)。以下是一个简单的使用示例: ```go import ( "github.com/go-redis/redis" ) func main() { //连接Redis数据库 client := redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", // no password set DB: 0, // use default DB }) //设置中心点经纬度 longitude := 116.397128 latitude := 39.916527 //设置半径和单位(单位可以是米、千米、英里等) radius := redis.GeoRadiusQuery{ Radius: 1000, Unit: "m", } //设置可选参数 options := redis.GeoRadiusCmd{ WithDist: true, WithCoord: true, Count: 10, Sort: "ASC", } //调用GeoRadius函数并获取结果 results, err := client.GeoRadius("mylocations", longitude, latitude, &radius).WithGeoHash().WithDist().WithCoord().WithCount(10).SortAsc().Result() if err != nil { fmt.Println("GeoRadius error", err) return } //遍历结果并输出 for _, result := range results { locationName := result.Name locationDist := result.Dist locationCoord := result.GeoHash fmt.Println(locationName, locationDist, locationCoord) } } ``` 需要注意的是,使用该包时需要先在Go module中导入github.com/go-redis/redis包,然后在代码中引入该包,并通过NewClient函数创建一个Redis客户端。在调用GeoRadius函数时,需要使用GeoRadiusQuery和GeoRadiusCmd类型的变量来设置半径、单位以及可选参数等信息。最后的结果可以使用Result函数来获取,返回的是一个GeoLocation类型的slice。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值