前端视角下的Go语法学习:创建 Go 项目
云层上的光 2024-07-18 17:03:15 阅读 62
今日话题
使用 GoLand 创建 Go 项目
作者:云层上的光
时间:2024年6月20日 17时16分14秒
主线任务
一、GoLand 创建项目
1、点击 “new Project” 按钮
2、已经有下载过两个 Golang SDK 版本,选择版本创建即可~
3、如果没有下载过Golang SDK,或者项目中需要不同版本,则可以点击 “Download” 按钮
4、等待一小会时间就可以进行 Golang SDK 版本选择 ,本次操作选择 go.1.22.0 作为演示
存放地址选择了默认地址:C:\Users\DELL\go
5、确认之后,再修改代码存放地址:
6、点击创建,会得到一个 go.mod 文件,到这里 go 项目就算创建完毕
二、手动命令创建项目
1、创建 demo-hello-world 文件夹
<code>mkdir demo-hello-world
2、声明 go.mod 文件
<code>go mod init demo-hello-world
3、这种方式创建的项目 默认会用电脑的sdk,使用编辑器的话可以自己选择 sdk ,当然其实这些都是可以直接在 go.mod 文件中进行调整的
4、当然,为了研究 我修改了下载 1.22.5 版本,不过目前官方最新是 1.22.4 所以给我报错了,这很正常
支线任务
一、go.1.22.0 是否会本地下载?
在上面演示中,选择了 go.1.22.0 创建的项目,好奇是否会下载 go.1.22.0 SDK在本地呢?
打开文件夹找到存放地址 C:\Users\DELL\go,打开之后发现确实存在了 SDK 版本
二、go.mod 文件作用?
go.mod 文件是 go 项目依赖管理文件,相当于前端的 package.json,也是Java项目中Maven的pom.xml
1、生成 go.mod 文件
<code>go mod init demo-hello-world
2、从上面的命令不难看出:
go 是 go 安装的 sdkmod 就是 mod 文件的意思,连起来这里其实是go提供出来的一个命令叫 go mod (和前端脚手架一样)init 初始化的意思这里的 demo-hello-world 指的是模块的意思,这里后续再进一步了解 TODO
前端生成 package.json 方式:
npm init -y
这里的 npm 对应的就是 goinit 对应 init不过前端这边不用指明是 package.json 文件 前端现在默认都是这个依赖
三、go sdk 还提供了哪些 api?
1、目前我们学会了使用 go mod 用来生成 go.mod 文件
go mod init demo-hello-world
2、还有 go sdk 还提供了哪些 api 呢,这里先做一个了解,后续用到再深入:
3、不过目前都还没有用上,暂时没有必要深入的去了解,只有用到了再学习会事半功倍
不过还是先列举出来常用的命令,以下是一些常用的命令和它们的功能:
go run:编译并运行一个 Go 源码文件或一组文件。
<code>go run main.go
go build:编译包和依赖项。
go build
go install:编译并安装包和依赖项到 $GOPATH/bin
目录下(或者 $GOBIN
,如果设置了)。
go install
go clean:移除当前源码包和关联的目标文件。
go clean
go test:运行测试文件。
go test
go get:下载并安装指定的远程模块包。
go get example.com/module
go mod init:初始化一个新的模块,创建 go.mod
文件。
go mod init module-name
go mod tidy:整理和移除未使用的依赖。
go mod tidy
go mod vendor:将依赖项复制到本地 vendor 目录。
go mod vendor
go mod download:下载模块的依赖项。
go mod download
go mod edit:编辑模块的 go.mod 文件。
go mod edit
go mod graph:打印模块依赖图。
go mod graph
go mod verify:校验依赖的正确性。
go mod verify
go mod why:解释为什么需要依赖。
go mod why package-name
go env:查看当前 Go 环境变量。
go env
代码仓库
https://github.com/chuxin-cs/go-demo/tree/master/demo-env
往期内容
点击链接查看:https://www.yuque.com/chuxin-cs/it/ge9wybczy0wsq1l1
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。