【安装运行时】

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

    web effects collection typewriter effect js 打字机效果 http://www.mattboldt.com/demos/typed-js/ https://g ...

  2. js group objects in an array

    js group objects in an array js group objects in an array var groupBy = function(xs, key) { return x ...

  3. py python-pptx 创建ppt

    创建一个简单的PPTX文件 from pptx import Presentation class Main(): def __init__(self): prs = Presentation() t ...

  4. 你真的知道typeof null的结果为什么是‘object‘吗?

    到目前为止,ECMAScript 标准中定义了8种数据类型,它们分别是Undefined.Null.Number.Boolean.String.Symbol.BigInt.Object. 为了判断变量 ...

  5. django中间件介绍

    在学习django中间件之前,先来认识一下django的生命周期,如下图所示: django生命周期:浏览器发送的请求会先经过wsgiref模块处理解析出request(请求数据)给到中间件,然后通过 ...

  6. 用Python实现一个“百度翻译”

    import requests import json s = input("请输入你要翻译的内容:") headers = {"User-Agent":&qu ...

  7. [Python学习笔记]调试

    编码占了编程工作量的90%,调试占了另外90%,这是一个流传着的笑话.调试在编程中占有很大的分量,即使专业的程序员也一直在制造缺陷. 抛出异常 抛出异常相当于是说:"停止运行这个函数中的代码 ...

  8. 字符串拼接出现null的问题

    最近在开发的过程中遇到这样的问题,原因是在做一个需求的时候,要求将解密的号码和前缀进行拼接.一开始在这个拼接的过程中,没有考虑到数据校验的问题,因为有可能他的前缀或者其他需要拼接的字段在前端传递的过程 ...

  9. 京东数科二面:常见的 IO 模型有哪些?Java 中的 BIO、NIO、AIO 有啥区别?

    IO 模型这块确实挺难理解的,需要太多计算机底层知识.写这篇文章用了挺久,就非常希望能把我所知道的讲出来吧!希望朋友们能有收货!为了写这篇文章,还翻看了一下<UNIX 网络编程>这本书,太 ...

  10. 微信小程序:优化页面要渲染的属性

    问题:页面中只用到四个属性:goods_name,goods_price,goods_introduce,pics,但是整个对象中有22个属性,小程序中建议:data中只存放标签中要使用的数据,而现在 ...