golang 入门之环境搭建
【安装运行时】
直接上官网下载运行时安装即可:golang 官网

根据自己操作系统选择 golang 运行时版本,例如windows

当然我们也可以直接选择下面的稳定版本进行下载

下载安装后,安装程序会自动配置环境变量,我们在cmd中输入 go version 查看当前golang运行时版本
go version

【选择合适的编辑器】
Goland
Goland,商业公司jetbrains 近两年推出的 Go 集成开发环境,它真的是无比强大。缺点也是有的,就是比较吃机器配置(占内存高,低配机器卡),需要收费。
VS Code
VS Code,微软公司的开源文本编辑器,轻量级,免费。这里我选择vs code作为初步学习的IDE
VS Code插件
在vs code的扩展管理界面搜索"go",下图第一个名为"go"的插件直接安装即可

【配置GoPath/GoModule】
什么是GoPath(Go语言工作目录)
GOPATH 是 Go语言中使用的一个环境变量,它使用绝对路径提供项目的工作目录。
工作目录是一个工程开发的相对参考目录,好比当你要在公司编写一套服务器代码,你的工位所包含的桌面、计算机及椅子就是你的工作区。工作区的概念与工作目录的概念也是类似的。如果不使用工作目录的概念,在多人开发时,每个人有一套自己的目录结构,读取配置文件的位置不统一,输出的二进制运行文件也不统一,这样会导致开发的标准不统一,影响开发效率。
我们可以通过 go env命令查看我们配置的GoPath地址
go env

其实 GOPATH是go语言早期的设计,但是在开发过程中,多个项目用一个GoPath会十分不方便,会导致经常忘记切GoPath导致编译版本错误等问题。这时候,我们就要用GoModule了。
值得一提的是,采用GoPath其实是golang团队初期设计上的小缺陷,造成了很大的不便。因此,golang团队在Golang1.11版本新引入了官方包管理工具用于解决之前没有地方记录依赖包具体版本的问题。
什么是GoModule
GoModule也叫 go mod,因为命令使用时,需要输入 go mod 来操作Modules
使用go mod 管理项目,就不需要非得把项目放到GOPATH指定目录下,你可以在你磁盘的任何位置新建一个项目
然后使用命令来创建go.mod文件(其实就是一个项目的包管理文件)
打开vs终端,首先cd到项目根目录,然后输入命令
go mod init

输出日志告诉你要我们要定义一个Module名称,并给出了举例,那么我们加一个名称
go mod init example.com/m

这时候,我们可以看到我们的项目根目录已经自动生成了一个go.mod文件

【配置代理地址】
众所周知的原因,导致我们无法轻松访问golang的官方服务器,在安装依赖项时,会因为网络问题导致安装失败,这时候,就要用代理了。
使用goproxy.io
我用的是windows系统,按官方教程直接配置
- 右键 我的电脑 -> 属性 -> 高级系统设置 -> 环境变量
- 在 “[你的用户名]的用户变量” 中点击 ”新建“ 按钮
- 在 “变量名” 输入框并新增 “GOPROXY”
- 在对应的 “变量值” 输入框中新增 “https://goproxy.io,direct”
- 最后点击 “确定” 按钮保存设置
其他系统配置参考官方教程即可,非常简单。
【推荐项目结构】
按照golang的官方推荐,一般项目目录下会有下面结构
|--bin
|--pkg
|--src

其中,bin存放编译后的可执行文件;pkg存放编译后的包文件;src存放项目源文件。
一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目录即可。
对于pkg目录,曾经有人问:我把Go中的包放入pkg下面,怎么不行啊?他直接把Go包的源文件放入了pkg中。
这显然是不对的。pkg中的文件是Go编译生成的,而不是手动放进去的。(一般文件后缀.a)
对于src目录,存放源文件,Go中源文件以包(package)的形式组织。通常,新建一个包就在src目录中新建一个文件夹。
【开始HelloWorld吧】
我们在src下面(可以自行根据喜好创建组织名,项目名,作者等层次)创建helloworld.go文件

然后使用vscode输入helloworld代码
package main
import "fmt"
func main() {
fmt.Println("hello world")
}

然后我们按F5运行(Debug)...
这时候vscode可能会提示我们安装调试包等依赖项,我们点击一键安装即可
由于外网问题,如果没有配置代理地址,那么很有可能安装报错,这时候请参考前面步骤的【配置代理地址】解决
成功输出了Helloworld

golang 入门之环境搭建的更多相关文章
- 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建
003-PHP基础-01-PHP快速入门 03-PHP环境搭建 1.客户端(浏览器) IE FireFox CHROME Opera Safari 2.服务器 是运行网站的基本 是放置程序代码的地方 ...
- golang开发android环境搭建_window
golang开发android环境搭建介绍 一 安装依赖软件: git:版本管理 go: go开发环境(版本>=1.5),可直接下载window版的go安装包. android studio: ...
- Android入门之环境搭建
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1376935560.html 原创:An ...
- scala 入门Eclipse环境搭建
scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/downloa ...
- 新手嘛,先学习下 Vue2.0 新手入门 — 从环境搭建到发布
Vue2.0 新手入门 — 从环境搭建到发布 转自:http://www.runoob.com/w3cnote/vue2-start-coding.html 具体文章详细就不搬了,步骤可过去看,我这就 ...
- scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld
scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/3407911 ...
- 总结Vue 第四天:vue-cli(Vue2.0 新手入门 — 从环境搭建到发布)
总结Vue 第四天:vue-cli(Vue2.0 新手入门 - 从环境搭建到发布) 一.Vue CLI----(Vue2.0 新手入门 - 从环境搭建到发布): ■ CLI是Command-Lin ...
- JAVA WEB快速入门之环境搭建
前言 我是一直致力于:.NET技术栈.WEB前端.架构设计相关的开发与管理工作,但因国内大环境影响及公司技术方向发生转变(由.NET全部转为JAVA),需要熟练掌握JAVA WEB相关的知识,故我也得 ...
- ubuntu16.04 Golang语言开发环境搭建
golang即go语言是跨平台的语言,适用于windows 和linux平台,下面介绍linux平台下ubuntu16.04系统下的开发环境搭建过程. 一.安装开发必备环境 执行下面命令分别安装git ...
随机推荐
- BGV劝早买内存
12月3日,BGV全球首发,上线AOFEX交易所(A网),全球区块链爱好者震惊.很多人争相抢挖BGV,希望能够及早获取BGV带来的红利.有趣的是,随着BGV抢挖人数的增多,NGK内存也迎来了暴涨,在1 ...
- Dapr 知多少 | 分布式应用运行时
Intro Dapr 官方团队已于最近(2021.1.17)正式发布Dapr v1.0,Dapr已正式生产可用,可以部署到自托管环境或 Kubernetes 集群.对于绝大多数开发者来说,想必对Dap ...
- idea没有错误提示的解决方法(一直处于错误分析中)
仅作记录,以防再次发生却不记得. 原文链接:https://blog.csdn.net/a755199443/article/details/90084316 问题描述:idea没有自动报错.例如随便 ...
- ============================================ 微信小程序开发学习
开发文档: https://developers.weixin.qq.com/miniprogram/dev/framework/
- 一文读懂什么是kubernetes?
kubernetes概述 kubernetes面世不过短短几年时间,kuberenetes已经成为容器编排领域事实上的标准,无论是公有云,私有云或混合云,kubernetes都将作为一个为任何应用,任 ...
- su: Authentication failure解决方法
su命令不能切换root,提示su: Authentication failure,需要sudo passwd root一次之后,下次再su的时候只要输入密码就可以成功登录.
- 基于docker搭建jenkins
一.概述 Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎.Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.Jenkins 支持各 ...
- Linux文本三剑客总结
Linux文本处理三剑客 grep 文本过滤(模式:pattern)工具 grep, egrep, fgrep(不支持正则表达式搜索) grep grep: Global search REgula ...
- 《Selenium自动化测试实战》新书上市,有需要朋友们可以了解下,欢迎大家多提宝贵意见
京东:https://item.jd.com/13123910.html当当:http://product.dangdang.com/29204520.html 1. 本书基于 Python 3.8 ...
- [个人总结]pip安装tensorboard太慢
在执行pip install语句的时候直接指定国内豆瓣的镜像源进行下载: pip install -i https://pypi.douban.com/simple 你想下载的包的名称 例如下载ten ...