1. 下载
https://golang.org/dl/ # Go语言官网地址,在国内下载太慢,甚至都无法访问。通过如下地址下载:https://golangtc.com/download

2. 安装
在windows下,直接一步步点击安装即可。

3. 配置
在正式开始go语言编程之前,需要进行一些基础环境变量的配置。
在这里主要需要配置2个环境变量:GOROOTGOPATH
(1)GOROOT:GO的安装路径,需要添加到环境变量中。

Linux环境:
vim /etc/profile
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
windows环境:
GOROOT=D:\Go
PATH=%PATH%;%GOROOT%\bin

(2)GOPATH:GO的工作目录,可类比eclipse的workspace,作为编译后二进制的存放目的地和import包时的搜索路径。同样需要添加到环境变量。

Linux环境:
vim /etc/profile
export GOPATH=/home/go
export PATH=$PATH:$GOPATH/bin
windows环境:
export GOPATH=D:\goworkpace
export PATH=%PATH%;%GOPATH%\bin

关于GOPATH的几点说明:
(1)GOPATH之下主要包含三个目录:bin,pkg,src。bin目录主要存放可执行文件;pkg目录存放编译好的库文件,主要是*.a文件;src目录下主要存放go的源文件。
(2)不要把GOPATH设置成go的安装路径,可以自己在用户目录下面创建一个目录,如:goworkpace。
(3)GOPATH可以是一个目录列表,go get下载的第三方库,一般都会下载到列表的第一个目录里面。
(4)需要把GOPATH中的可执行目录也配置到环境变量中,否则你自行下载的第三方go工具就无法使用了,即:PATH=PATH:GOPATH/bin。

4. 编写helloworld
在GOPATH路径下,新建目录:src,该目录是管理所有go程序源代码的路径, 如:D:\goworkpace\src。
在GOPATH/src路径下,新建程序目录:hello,即:D:\goworkpace\src\hello。
在GOPATH/src/hello路径下,新建文件:helloworld.go,内容如下:

package main

import "fmt"

func main() {
fmt.Println("Hello,World!")
}

进入windows控制台,输入命令:go run helloworld.go
可以看到,将会在控制台输出:Hello,World!
或者,在输入命令:go install hello
将会在GOPATH/bin路径下生成可执行文件:hello.exe,运行该文件,也会在控制台输出:Hello,World!
实际上,当执行命令“go install hello”时,将会在GOPATH/src路径下搜索名称为hello的项目,然后将该目录下的main程序文件编译为对应名称的可执行文件,存放到GOPATH/bin目录下。

5. 选择合适的IDE
工欲善其事,必先利其器。在实际项目开发中,很多时候不可能还那么原始地敲命令调试,所以选择一款合适的集代码编辑,运行及调试于一体的开发工具非常有必要。
何为合适?简而言之,用着顺手即可!当然,大神例外!(大神都是直接用文本编辑器滴干活^+^^+^)
作为java老司机,我还是首选eclipse,用着顺手。
通过在eclipse安装goclipse插件,就可以将eclipse打造成为go开发IDE,详见:http://goclipse.github.io/
如果不是java程序员,我建议使用Visual Studio Code,毕竟eclipse本身运行还需要安装java环境,有点多此一举,详见:https://code.visualstudio.com/

【参考】
https://golangbot.com/golang-tutorial-part-1-introduction-and-installation/ go语言系列教程
http://www.jianshu.com/p/4e699ff478a5 go环境变量配置 (GOROOT和GOPATH)

最新文章

  1. QML 从无到有 3 (自动更新)
  2. EntityFramework之数据库以及表基本创建(一)
  3. 处理数组的forEach map filter的兼容性
  4. WPF的一些总是记不住的Tips
  5. python 字典 注意点
  6. servlet运行流程
  7. QCon2013上海站总结 -- 前端开发
  8. 二、 C#调用存储过程
  9. jquery Tab默认情况下自动切换
  10. Objective-c 类接口 (@interface) (类定义)
  11. RouterPassView——路由器密码查看工具
  12. UVAlive-2554 Snakes & Ladders---BFS状态的存储
  13. Java核心技术梳理-基础类库
  14. return,break,continue三者区别
  15. 学生月上网时间分布-TestData
  16. html中src与href的区别
  17. Django眼中的MVC
  18. springboot系列四、配置模板引擎、配置热部署
  19. 【译】第20节---数据注解-InverseProperty
  20. MIT一牛人对数学在机器学习中的作用给的评述

热门文章

  1. python学习日记(基础数据类型及其方法01)
  2. luogu3674 小清新人渣的本愿 (bitset+莫队)
  3. HDU--5269 ZYB loves Xor I (字典树)
  4. Spring -- 自定义转换器
  5. BZOJ 1912: [Apio2010]patrol 巡逻 (树的直径)(详解)
  6. Linux添加新硬盘及分区,格式化,挂载
  7. Vue中data返回对象和返回值的区别
  8. java 分隔函数split("",-1)的用途
  9. SpringCloud之Hystrix断路器以及dashboard 属性详解
  10. 数据库工具类 JdbcUtils