【安装运行时】

直接上官网下载运行时安装即可: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

官方地址:https://goproxy.io/zh/

我用的是windows系统,按官方教程直接配置

  1. 右键 我的电脑 -> 属性 -> 高级系统设置 -> 环境变量
  2. 在 “[你的用户名]的用户变量” 中点击 ”新建“ 按钮
  3. 在 “变量名” 输入框并新增 “GOPROXY”
  4. 在对应的 “变量值” 输入框中新增 “https://goproxy.io,direct”
  5. 最后点击 “确定” 按钮保存设置

其他系统配置参考官方教程即可,非常简单。

【推荐项目结构】

按照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 入门之环境搭建的更多相关文章

  1. 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建

    003-PHP基础-01-PHP快速入门 03-PHP环境搭建 1.客户端(浏览器) IE FireFox CHROME Opera Safari 2.服务器 是运行网站的基本 是放置程序代码的地方 ...

  2. golang开发android环境搭建_window

    golang开发android环境搭建介绍 一 安装依赖软件: git:版本管理 go:  go开发环境(版本>=1.5),可直接下载window版的go安装包. android studio: ...

  3. Android入门之环境搭建

    欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1376935560.html 原创:An ...

  4. scala 入门Eclipse环境搭建

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/downloa ...

  5. 新手嘛,先学习下 Vue2.0 新手入门 — 从环境搭建到发布

    Vue2.0 新手入门 — 从环境搭建到发布 转自:http://www.runoob.com/w3cnote/vue2-start-coding.html 具体文章详细就不搬了,步骤可过去看,我这就 ...

  6. scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/3407911 ...

  7. 总结Vue 第四天:vue-cli(Vue2.0 新手入门 — 从环境搭建到发布)

    总结Vue 第四天:vue-cli(Vue2.0 新手入门 - 从环境搭建到发布) 一.Vue CLI----(Vue2.0 新手入门 - 从环境搭建到发布): ■   CLI是Command-Lin ...

  8. JAVA WEB快速入门之环境搭建

    前言 我是一直致力于:.NET技术栈.WEB前端.架构设计相关的开发与管理工作,但因国内大环境影响及公司技术方向发生转变(由.NET全部转为JAVA),需要熟练掌握JAVA WEB相关的知识,故我也得 ...

  9. ubuntu16.04 Golang语言开发环境搭建

    golang即go语言是跨平台的语言,适用于windows 和linux平台,下面介绍linux平台下ubuntu16.04系统下的开发环境搭建过程. 一.安装开发必备环境 执行下面命令分别安装git ...

随机推荐

  1. js function arguments types

    js function arguments types https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functi ...

  2. SVG viewBox & coordinate system

    SVG viewBox & coordinate system https://codepen.io/xgqfrms/pen/abOOrjp <html> <body> ...

  3. Flutter 获取本地图片并剪切

    安装依赖 dependencies: ... image_picker: image_cropper android\app\src\main\AndroidManifest.xml 将UCropAc ...

  4. [转]什么是 C 和 C ++ 标准库?

    转载地址:https://www.cnblogs.com/findumars/p/9000371.html 简要介绍编写C/C ++应用程序的领域,标准库的作用以及它是如何在各种操作系统中实现的.我已 ...

  5. C++算法代码——字符串p型编码

    题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1681 题目描述 给定一个完全由数字字符('0','1','2',-,'9')构成的字 ...

  6. 4. Vue基本指令

    目录 1. v-on指令 2. v-if指令 3. v-show指令 4. v-for指令 5. v-model指令 一. v-on指令 1. 基础用法 v-on是事件监听的指令, 下面来看简单用法 ...

  7. Vue学习笔记-Windows系统Git安装(按装vue-element-admin报错)

    一  使用环境: windows 7 64位操作系统 二  Windows系统Git安装(Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理,是目前使用范围最广的版 ...

  8. Java基础语法:运算符

    Java 运算符(operator)根据功能分类: 算术运算符:+,-,*,/,%,++,-- 赋值运算符:= 关系运算符:>,<,>=,<=,==,!=,instanceof ...

  9. Java 8 中Sort排序原理:

    总的来说,java中Arrays.sort使用了两种排序方法,快速排序和优化的合并排序.Collections.sort方法底层就是调用的Arrays.sort方法. 快速排序主要是对那些基本类型数据 ...

  10. 小公举comm,快速比较两个排序文件

    前言 我们经常会有需求比较一个文件里的内容是否在另一个文件存在.假如我有一份监控列表的IP写入在了file1,我所有的机器IP写入在了file2,我要找出还有哪些机器没有在监控列表.以前的做法是写个两 ...