Go的安装

一. 下载地址

        Go官方下载地址:https://golang.org/dl/

        Go中文网:https://go.p2hp.com/go.dev/dl/ 

         根据不同系统下载不同的包。

二. 配置GOPATH

        GOPATH是一个环境变量,用来表明你写的go项目的存放路径。

        GOPATH路径最好只设置一个,所有项目代码都放到GOPATH的src目录下。

在window下设置:

  • 找到环境变量:我的电脑->属性->高级系统设置->环境变量
  • 检查你的电脑是否存在GOPATH(如果没有新建一个,同时新建一个你存go代码的目录),并且设置值为你要存的go代码的目录

  • 在PATH环境变量下添加go的安装目录和GOPATH目录

        2.1 go项目目录 

         在进行Go语言开发时,我们的代码总是回保存在$GOPATH/src目录下,在工程经过go build,go install或者go get等指令之后,会将下载的第三方源代码文件放在$GOPATH/src目录下,产生的二进制可执行文件放在$GOPATH/bin目录下,生成的中间缓存文件会被保存在$GOPATH/pkg目录下。

        如果我们使用版本管理工具(比如:git)来管理我们的项目代码时,我们只需要添加$GOPATH/src目录的源代码即可,bin和pkg目录的内容无序版本控制。

        2.2 适合个人开发者

        我们知道源代码都是放在GOPATH的src目录下,我们可以按照下图来组织我们的代码:

        2.3  流行的项目结构

         Go语言也是通过包来组织代码文件,我们可以引用别人的包,也可以发布自己的包,但是为了防止不同包的项目名相同,我们通常使用顶级域名来作为包名的前缀,这样那就不同担心项目名冲突的问题了。

        因为不是每个个人开发者都拥有自己的顶级域名,所以目前流行的方式是使用个人的github用户名来区分不同的包。

        举个例子:

        张三和李四都有一个名叫studygo的项目,那么这两个包的路径就会是:

import "github.com/zhangsan/studygo"
import "github.com/lisi/studygo"

         以后我们从github上下载别人的包的时候,如:

go get github.com/jmoiron/sqlx

        那么,这个包会下载到我们本地GOPATH目录下的src/github.com/jmoiron/sqlx。

        2.4 适合企业开发者

三. 编辑器       

        3.1 安装go插件

        启动vscode,选择插件搜索go选择Go for visual studio code 插件安装即可。

        3.2 vscode安装Go语言开发工具包

        这里说的是使用vscode来安装Go语言开发工具包。在Go语言开发的时候为我们提供诸如代码提示,代码自动补全等功能。

        在vscode中按下Ctrl+shift+p快捷键,在输入框中填入go:install,下面会自动搜索命令。选择箭头指向的那个。

        选择全部,点击确定。

        vscode会下载安装图列工具,但是由于国内网络环境基本有的工具会安装失败。

解决办法:设置代理。

C:\Users\Administrator> go env -w GO111MODULE=onC:\Users\Administrator> go env -w GOPROXY=https://proxy.golang.com.cn,directC:\Users\Administrator>go version
go version go1.22.1 windows/amd64

        3.3 修改vscode终端cmd启动

        在运行代码时需要终端运行,有的vscode默认终端是powershell,下面介绍修改成cmd终端。

        在文件->首选项->设置中打开settings页面。

四. 第一个go程序

  • 进入gopath环境变量地址下的src目录
  • 在src目录下创建一个hello目录,在hello目录下创建一个main.go文件
  • 使用vscode编写代码

上面的报错解决方法来源:配置 Visual Studio Code for Go 开发 - Go on Azure | Microsoft Learn 

在go文件所在文件内创建另一个用于创建根控制器的文件夹(文件夹名随意,这里是sample-app)

然后使用终端进入对应目录,使用命令go mod init sample-app之后便会生成go.mod文件,然后就可以正常使用了

  • 在hello目录下终端执行go build

        go 编译器会去GOPATH的src目录下查找你要编译的hello项目,编译得到的可执行文件会保存在执行编译命令的当前目录下。

  • 在终端执行可执行文件

        还可以使用-o参数来指定编译后的可执行文件名字。

         go build -o hello.exe 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黑马点评-附近商户实现

GEO数据结构 Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,根据经纬度来检索数据。 GEO本质上是基于sortedSet实现的,在Sorted Set中,每个成员都是与一个分数(score)相关联的,这个分数用于对成员进行排序…

LeetCode 2482.行和列中一和零的差值

给你一个下标从 0 开始的 m x n 二进制矩阵 grid 。 我们按照如下过程,定义一个下标从 0 开始的 m x n 差值矩阵 diff : 令第 i 行一的数目为 onesRowi 。 令第 j 列一的数目为 onesColj 。 令第 i 行零的数目为 zerosRowi 。 令第 j 列零的数目为 zer…

数睿通2.0数据接入升级——支持增量字段同步,表单独映射

引言 上次数睿通 2.0 更新是在 23 年12 月 底,已经过去了接近三个月的时间,中间由于过年加上年前年后实在是工作繁忙,所以一直没有腾出空来更新代码,希望大家可以理解,平台的发展离不开你们的支持,在此表示…

【Linux】第四十站:线程概念

文章目录 一、线程二、Linux中线程应该如何理解三、重新定义线程四、四谈进程地址空间(页表相关)五、Linux线程周边的概念1. 线程与进程切换2.线程优点3.线程缺点4.线程异常5.线程用途 一、线程 线程:是进程内的一个执行分支。线程的执行粒度…

RFID-科技的“隐秘耳语者”

RFID-科技的“隐秘耳语者” 想象一下,你身处一个光线昏暗的环境中,周围的一切都被厚厚的阴影笼罩。这时,你需要识别并获取一个物体的信息,你会选择怎么做?是点亮灯光,用肉眼仔细观察,还是打开扫…

复杂业务场景下,如何优雅的使用设计模式来优化代码?

1、引言 本文以一个实际案例来介绍在解决业务需求的路上,如何通过常用的设计模式来逐级优化我们的代码,以把我们所了解的到设计模式真实的应用于实战。 2、背景 假定我们现在有一个订单流程管理系统,这个系统对于用户发起的一笔订单&#…

Linux--搭建Zabbix监控系统

11.1 案例分析 要想实时地了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好的 途径。 Zabbix(免费的)是一个基于Web界面的企业级开源监控套件,提供分布式系统监控与网络监视功能。具备主机的性能监控。网络…

对simplex算法的时间复杂度进行分析

对于simplex算法,如果每进行一次pivot变换,目标函数所得到的结果都会有可能出现增加的情况,所以得到的结论中,可以肯定它的值是一定不会出现减少的情况的,每次从目标函数中找到一个系数大于0的变量,然后再在约束条件中选取能够让它的增值最少的那个来继续进行pivot变换。…

egg如何写单元测试

优秀的代码需要有单元测试进行质量保证,每个测试用例都给应用的稳定性提供了一层保障。 测试目录结构 我们约定 test 目录为存放所有测试脚本的目录,测试所使用到的 fixtures 和相关辅助脚本都应该放在此目录下。 测试文件的目录和我们需要测试的文件目…

考研数学|张宇30讲,搭配什么基础题?

如果基础跟的是张宇,那么基础做的题目要根据自己的题目来决定 题集的选择最好不要太难,而且基础也不用做太多题目,以数学知识点的运用,培养做题感觉为主。 张宇老师的课程在基础阶段也有配套的课程,就是《张宇基础30…

力扣hot100:438.找到字符串中所有字母异位词(滑动窗口)

26个字符,我复制怎么了?26个字符我比较个数怎么了? 顶多时间复杂度*26 本题用固定窗口大小的滑动窗口每次比较包含26个元素的数组次数,最容易写。 动态窗口大小哈希表存数值(双指针差值)难想难写。 一、动态…

HTML—常用标签

常用标签&#xff1a; 标题标签&#xff1a;<h1></h1>......<h6></h6>段落标签&#xff1a;<p></p>换行标签&#xff1a;<br/>列表&#xff1a;无序列表<ul><li></li></ul> 有序列表<ol>&…