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)

学习go语言编程系列之helloworld的更多相关文章

  1. 学习go语言编程系列之定义变量

    package main import ( "fmt" "math") func main() { // 1. 定义变量名age,不初始化,使用对应类型的默认值 ...

  2. 如何轻松学习C语言编程!

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  3. 珍藏的C语言编程系列教程

    本文有332个文字,大小约为2KB,预计阅读时间1分钟 这是本人珍藏的C语言.C++系列教程. 相信每个Coder的第一门编程语言就是C语言吧, 现在也依然很热门,不谈了.直接上链接,感兴趣的直接存, ...

  4. C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面

    C#中的函数式编程:递归与纯函数(二)   在序言中,我们提到函数式编程的两大特征:无副作用.函数是第一公民.现在,我们先来深入第一个特征:无副作用. 无副作用是通过引用透明(Referential ...

  5. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(上)

    学习ASP.NET Core Blazor编程系列一--综述 一.概述 Blazor 是一个生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建信息丰富的交互式 U ...

  6. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(中)

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 四.创建一个Blazor应用程序 1. 第一种创 ...

  7. 学习ASP.NET Core Razor 编程系列二——添加一个实体

    在Razor页面应用程序中添加一个实体 在本篇文章中,学习添加用于管理数据库中的书籍的实体类.通过实体框架(EF Core)使用这些类来处理数据库.EF Core是一个对象关系映射(ORM)框架,它简 ...

  8. 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  9. 学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

随机推荐

  1. CSS居中的几种方式总结

    1.水平居中的 margin:0 auto; 这个是用于子元素上的,前提是不受float影响 <style type="text/css"> .box{ width: ...

  2. springboot jar包运行中获取资源文件

    1. 今天晚上写了一个程序,基于Spring boot的一个小网站,发现使用FileUtils.class.getResource(path)来获取jar包中的资源文件并不能成功,其路径很奇怪 fil ...

  3. nodejs的某些api~(四)udp&dns

    今天记udp/数据报套接字和dns. udp UDP/数据报套接字 => require('dgram');dgram.createServer([type],[cb]);type:可以是'ud ...

  4. WebService学习总结(一)——WebService的相关概念

    一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...

  5. Arch Linux中使用VMware Workstation不能打开vmmon内核模块

    打开VMware Workstation出现错误提示:Could not open /dev/vmmon: No such device.Please make sure that the kerne ...

  6. CSS解决字母不换行

    通过百度,查找解决方案 1. word-break:break-all;只对英文起作用,以字母作为换行依据2. word-wrap:break-word; 只对英文起作用,以单词作为换行依据

  7. poj1456 Supermarket

    书上用的方法是正着按照天数推,如果任务大于小根堆顶就替换,天数多于任务就加. 而我依稀记得以前洛谷上有一题也是这个,用时光倒流来求解,天数倒推,加任务,取大根堆顶即可. 我的代码实现: #includ ...

  8. 以Attribute加上Header验证

    建立新FilterAttribute继承AuthorizationFilterAttribute,覆写OnAuthorization拦截传入的HttpActionContext内容判断是否有传入指定的 ...

  9. Vue+Django2.0 restframework打造前后端分离的生鲜电商项目(3)

    1.drf前期准备 1.django-rest-framework官方文档 https://www.django-rest-framework.org/ #直接百度找到的djangorestframe ...

  10. C语言进阶--Day2

    今天主要讲解的是函数的压栈与出栈 1. 要实现一个数组的逆置,用栈的压栈出栈观点: reverseArr(int *parr,int i,int len) { if(i != len-1) rever ...