【安装运行时】

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

    Raspberry Pi & Raspberry Pi 4 pdf https://www.raspberrypi.org/magpi/issues/beginners-guide-2nd-e ...

  2. css social media

    css social media https://realfavicongenerator.net/ https://css-tricks.com/favicon-quiz/ <!DOCTYPE ...

  3. linux 安装node和pm2

    用yum安装 curl -sL https://rpm.nodesource.com/setup_10.x | bash - yum install -y nodejs npm install -g ...

  4. 总结 接口 final关键字 abstract关键字 static 关键字

    final关键字: * final 修饰的方法能被继承 不能被重写 * final修饰的类不能被继承 * final 修饰的变量(基本类型)不能被修改 * final 修饰的成员变量必须初始化 局部变 ...

  5. Linux Cron 定时任务

    作者:丁仪 来源:https://chengxuzhixin.com/blog/post/LinuxCron-ding-shi-ren-wu.html 定时任务是经常被用到的,比如系统备份.数据导出等 ...

  6. 1.3 PHP+MYSQL+APACHE配置(序)

    本节对服务器端web服务进行配置.事实上,对于配置这个环境(WAMP)网上还是有很多教程的,大家可以通过网上的教程完成配置,也不必拘泥于本文.甚至网上有免费的服务器端软件可以选择,比如著名的phpst ...

  7. 五. SpringCloud服务降级和熔断

    1. Hystrix断路器概述 1.1 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败.这就造成有可能会发生服务雪崩.那么什么是服务雪崩呢 ...

  8. Kubernetes-2.组件

    内容主要摘自官网文档资料 官网地址 本文概述了交付正常运行的Kubernetes集群所需的各种组件. 本文编写基于kubernetes v1.17版本 目录 Kubernetes集群 Master组件 ...

  9. Java RPC 框架 Solon 1.3.9 发布,更便利的支持

    Solon 是一个微型的Java RPC开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,4000多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:RPC. ...

  10. js一周时间表

    <div class="datetext"> <img class="dateLeft" src="./images/dateLef ...