前端视角下的Go语法学习:创建 Go 项目

今日话题

使用 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:UsersDELLgo

5、确认之后,再修改代码存放地址:

6、点击创建,会得到一个 go.mod 文件,到这里 go 项目就算创建完毕

二、手动命令创建项目

1、创建 demo-hello-world 文件夹

mkdir demo-hello-world

2、声明 go.mod 文件

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:UsersDELLgo,打开之后发现确实存在了 SDK 版本

二、go.mod 文件作用?

go.mod 文件是 go 项目依赖管理文件,相当于前端的 package.json,也是Java项目中Maven的pom.xml

1、生成 go.mod 文件

go mod init demo-hello-world

2、从上面的命令不难看出:

  • go 是 go 安装的 sdk
  • mod 就是 mod 文件的意思,连起来这里其实是go提供出来的一个命令叫 go mod (和前端脚手架一样)
  • init 初始化的意思
  • 这里的 demo-hello-world 指的是模块的意思,这里后续再进一步了解 TODO

前端生成 package.json 方式:

npm init -y
  • 这里的 npm 对应的就是 go
  • init 对应 init
  • 不过前端这边不用指明是 package.json 文件 前端现在默认都是这个依赖
三、go sdk 还提供了哪些 api

1、目前我们学会了使用 go mod 用来生成 go.mod 文件

go mod init demo-hello-world

2、还有 go sdk 还提供了哪些 api 呢,这里先做一个了解,后续用到再深入:

3、不过目前都还没有用上,暂时没有必要深入的去了解,只有用到了再学习会事半功倍

不过还是先列举出来常用的命令,以下是一些常用的命令和它们的功能:

  1. go run:编译并运行一个 Go 源码文件或一组文件。

    go run main.go

  2. go build:编译包和依赖项。

    go build

  3. go install:编译并安装包和依赖项到 $GOPATH/bin 目录下(或者 $GOBIN,如果设置了)。

    go install

  4. go clean:移除当前源码包和关联的目标文件。

    go clean

  5. go test:运行测试文件。

    go test

  6. go get:下载并安装指定的远程模块包。

    go get example.com/module

  7. go mod init:初始化一个新的模块,创建 go.mod 文件。

    go mod init module-name

  8. go mod tidy:整理和移除未使用的依赖。

    go mod tidy

  9. go mod vendor:将依赖项复制到本地 vendor 目录。

    go mod vendor

  10. go mod download:下载模块的依赖项。

go mod download
  1. go mod edit:编辑模块的 go.mod 文件。
go mod edit
  1. go mod graph:打印模块依赖图。
go mod graph
  1. go mod verify:校验依赖的正确性。
go mod verify
  1. go mod why:解释为什么需要依赖。
go mod why package-name
  1. go env:查看当前 Go 环境变量。
go env

代码仓库

https://github.com/chuxin-cs/go-demo/tree/master/demo-env

往期内容

点击链接查看:https://www.yuque.com/chuxin-cs/it/ge9wybczy0wsq1l1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/934902.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用pyinstaller打包pyqt的程序,运行后提示ModuleNotFoundError: No module named ‘Ui_main‘

环境:windowpython3.9pyqt6 使用pyqt UI编辑器生成了main.ui ,main.ui编译成了Ui_main.py main.py 使用当前目录下的Ui_main.py。 打包过程没报错,运行报错。 错误如下: 解决方法:pyinstaller -Fw main.py --paths. 使…

1. 机器学习基本知识(4)——机器学习测试和验证

1.6 测试和验证 了解模型对新实例的泛化能力的唯一方法是在新实例上进行实际尝试。 一种方法是将模型部署到生产环境并监控其性能。 ​ 这种方法很有效,但如果模型非常糟糕,你的用户就会抱怨,所以这显然不是最好的方法。 更好的选择是将数…

Qwen 论文阅读记录

本文仅作自己初步熟悉大模型,梳理之用,慢慢会更改/增加/删除,部分细节尚未解释,希望不断学习之后,能够完善补充。若有同道之人,欢迎指正探讨。 关于后面的code-qwen and math-qwen,我个人认为依…

yarn 安装问题

Couldn’t find package “regenerator-runtime” on the “npm” registry. Error: Couldn’t find package “watch-size” on the “npm” regist 标题Error: Couldn’t find package “babel-helper-vue-jsx-merge-props” on the “npm” registry. Error: Couldn’t f…

【开源】基于SpringBoot框架的音乐网站与分享平台(计算机毕业设计)+万字说明文档 T011

系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境: Tomcat 7.x,8.x,9.x版本均可 操作系统…

【SpringMVC】应用分层

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:场景引入 二:前后端分离三层架构 1:表现层 2:业务…

防火墙旁挂部署+故障切换

一、实验环境 华为ENSP 二、拓扑 三、目的 1、内网PC1访问Server 2、防火墙旁挂部署,对流量进行过滤,防火墙挂掉之后,内网PC1能继续访问到Server 3、防火墙恢复正常后,流量能回切至防火墙转发 四、思路: 1、AR1…

MySQL8版本升级

1.官方升级手册必看 1.1 理解升级过程会做什么 手册网址:https://dev.mysql.com/doc/refman/8.0/en/upgrading.html 升级mysql 系统数据库(默认的库),升级mysql 用户数据库(用户创建的库) 升级步骤分为…

5G中的随机接入过程可以不用收RAR?

有朋友提到了一种不用接收RAR的RA过程,问这个是怎么回事。其实在刚刚写过的LTM cell switch篇章中就有提到,这里把所有相关的内容整理如下。 在RACH-less LTM场景,在进行LTM cell switch之前就要先知道target cell的TA信息,进而才…

QT数据库SQLite:QsqlTableModel使用总结

数据库连接、数据模型与界面组件所涉及的类之间的关系如下所示: 数据库类 QSqlDatabase 类用于建立与数据库的连接,QSqlDatabase 对象就表示这种连接。QSqlDatabase 类的功能主要分为三大部分: 1、创建数据库连接,即创建 QSqlDat…

C++求20亿内质数的合数“哥德巴赫猜想”

数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24519,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。 输入格式: 输入…

物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉

0. 要实现的效果 让树莓派可以识别身边的一些物品,比如电脑,鼠标,键盘,杯子,行李箱,双肩包,床,椅子等 1. 硬件设备 树莓派 5 raspberrypi.com/products/raspberry-pi-5/树莓派官方摄…

模型训练数据-MinerU一款Pdf转Markdown软件

模型训练数据-MinerU一款Pdf转Markdown软件-说明 简介: MinerU是什么 MinerU是上海人工智能实验室OpenDataLab团队推出的开源智能数据提取工具,专注于复杂PDF文档的高效解析与提取。MinerU能将包含图片、公式、表格等元素的多模态PDF文档转化为易于分析…

51c深度学习~合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/12750420 #傅里叶特征 (Fourier Feature)与核回归 位置编码背后的理论解释 本文探讨了位置编码背后的理论基础,特别是傅里叶特征(Fourier Feature)与核回归(Kern…

数据仓库工具箱—读书笔记01(数据仓库、商业智能及维度建模初步)

数据仓库、商业智能及维度建模初步 记录一下读《数据仓库工具箱》时的思考,摘录一些书中关于维度建模比较重要的思想与大家分享🤣🤣🤣 博主在这里先把这本书"变薄"~有时间的小伙伴可以亲自再读一读,感受一下…

【JVM】JVM基础教程(三)

上一章:【JVM】JVM基础教程(二)-CSDN博客 目录 运行时数据区 应用场景 程序计数器 程序计数器在运行时会出现内存溢出吗? 栈 IDEA的debug工具查看栈帧的内容 栈帧的组成 局部变量表 关于 this 的内存存储 操作数栈 帧…

如何编译安装系统settings设置应用(5.0.0-Release)

本文介绍如何在OpenHarmony 5.0.0 r版本中修改系统设置应用,并且编译安装到开发板上 开发环境 1.dayu200开发板 2.OpenHarmony 5.0.0r 固件 3.API12 full sdk (如果安装full sdk过程中出现报错hvigor ERROR: Cannot find module typescript,请参考 h…

【Unity】Amplify Shader Editor

Amplify Shader Editor (ASE) Amplify Shader Editor,是一个功能强大的基于节点的着色器开发工具,允许开发者在 Unity 中轻松创建和管理复杂的 Shader。 主要功能和特点 基于节点的编辑器: • 提供直观的可视化界面,减少手写 Sh…

Github2024-12-10 Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-12-10统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10HTML项目1Rust项目1系统设计指南 创建周期:2507 天开发语言:Python协议类型:OtherStar数量:241693 个Fork数量:42010 次关注人…

1.2.3计算机软件

一个完整的计算机系统由硬件和软件组成,用户使用软件,而软件运行在硬件之上,软件进一步的划分为两类:应用软件和系统软件。普通用户通常只会跟应用软件打交道。应用软件是为了解决用户的某种特定的需求而研发出来的。除了每个人都…