一.我为什么要学习go语言

当今已经是移动和云计算时代,Go出现在了工业向云计算转型的时刻,简单、高效、内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发(毕竟它就是为此而设计的)。到2014年,Go项目拥有了上百的核心贡献者,其生态圈中拥有了数不尽的第三方库和工具(https://godoc.org/),更有很多大公司开始或迁移到go语言,一些重量级的开源云项目,诸如Docker和Kubernetes 都是用Go语言实现的,一些运作基础设置的公司,诸如Google、CloudFlare、Canonical、Digital Ocean、Github、Heroku以及微软也都在使用Go语言开发一些重量级的项目。再来看看如下公司开源的go库
(1)Facebook开源其go库 https://github.com/facebookgo
(2)Dropbox开源了其基于Go语言的工具库godropbox,并表示在一年前已经决定将Dropbox中对性能要求比较高的后端程序从Python迁移到Go语言。Dropbox的几乎所有的代码都是用Python编写的, Python语言被广泛使用在服务器端、桌面的客户端、网站控制逻辑以及后端的 API 和分析上。Dropbox亲睐Python简单易学、开发效率高等特点,但是现在为了支撑日益增长的用户数量,Dropbox不得不将部分对性能要求比较高的业务替换为有更好的并发支持和更快的运行速度的Go语言。
Go 目前已经发展到1.4版本,除了其新增的特性和bug修正外,它为实现一个新的低延迟垃圾收集器以及支持在移动终端上运行Go奠定了基础。作为程序员我们必须在掌握精通一门语言的同时需要扩大视野,学习另外一种语言的设计思想和精髓,而我认为go再合适不过了!2015年将是Go语言大爆发的一年。

二.Go语言开发环境搭建

1.Go的安装

(1)下载go安装程序 下载地址:https://golang.org/dl/ (墙内下载地址http://www.golangtc.com/download),如果是您的系统是windows32 位系统,请选择go1.3.3.windows-386.msi即可

(2)下载后直接双击msi文件安装,默认安装在c:\go
(3)安装完成后默认会在环境变量 Path 后添加 Go 安装目录下的 bin 目录 C:\Go\bin\,并添加环境变量 GOROOT,值为 Go 安装根目录 C:\Go\
(4).验证是否安装成功,在运行中输入 cmd 打开命令行工具,在提示符下输入 go

(5)设置工作空间gopath目录(Go语言开发的项目路径)
Windows 设置如下,新建一个环境变量名称叫做GOPATH,值为你的工作目录,例如笔者的设置GOPATH=e:\mygo

以上 %GOPATH% 目录约定有三个子目录:
src 存放源代码(比如:.go .c .h .s等)
pkg 编译后生成的文件(比如:.a)
bin 编译后生成的可执行文件(为了方便,可以把此目录加入到 windows的PATH 变量中,在环境变量path后追加%GOPATH%\bin)
(6)用go env命令查看环境变量设置

2.IDE的选择和设置

Go的开发ide目前有很多选择,比如LiteIDE,Vim,Emcas,goEclipse等,这里推荐Sublime Text 2(以下简称Sublime)+GoSublime+gocode组合

(1)下载安装Sublime Text 2 http://www.sublimetext.com/
(2)安装Package Control包管理工具
Ctrl + `(该键位tab键上方的~键)组合键打开Sublime2的命令行(注意输入法模式是英文状态),然后粘贴执行如下代码

  1. import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation

然后重启sublime,可以发现在在菜单栏多了一个如下的栏目,说明Package Control已经安装成功了。

(3)安装GoSublime插件
Ctrl+Shift+p打开Package Controll 输入pcip(即“Package Control: Install Package”的缩写),然后输入GoSublime,按确定就开始安装了。
(4)同上步(3)安装Go Build
(5)安装gocode代码自动提示
打开windows的命令行提示符程序,开始-》运行-》cmd运行如下代码
go get -u github.com/nsf/gocode
go install github.com/nsf/gocode
如果有错误提示,那么要安装Git客户端(windows git 下载地址 http://msysgit.github.io/ ,同时要在path环境变量后追加git配置 ;D:\Program Files\Git\bin;D:\Program Files\Git\libexec\git-core;)

(6)设置go非标准库智能提示

最新版本的 gosublime 要求设置你的 GOPATH 变量到它的配置文件中,否则可能无法支持对非标准库包的代码输入提示,打开 Settings - Default,拷贝所有内容,然后粘贴到 Settings - User 中(这样的做法是为了保证你的修改不会被插件更新而重置,这插件更新很频繁)。
接下来,在 env 这栏中输入你的 GOPATH 变量,重启设置生效。

  1. "env": {
  2. "GOROOT":"C:\\go",
  3. "GOPATH": "E:\\mygo"
  4. },

三.编写和运行Go程序

1.用sublime在gopath/src目录下新建一个程序hello.go,代码如下


2.运行go程序
CTRL+B打开sublime的命令行,在提示符下输入 go run hello.go

3.编译生成exe程序
CTRL+B打开sublime的命令行,在提示符下输入 go build hello.go

四 .go语言学习资料

1.go指南:官网链接:https://go-tour-zh.appspot.com/welcome/1(需要梯子),如果无法打开请用国内链接:http://tour.studygolang.com/

2.《the way to go》,如果看英文感觉吃力,github上无闻大牛已经做了中文译本:https://github.com/Unknwon/the-way-to-go_ZH_CN

3.《Go 学习笔记 第三版》雨痕写的,该电子书在github开源:https://github.com/qyuhen/book

4.《go web 编程》,是谢大(beego的作者)写的电子书,github中文目录链接:https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/preface.md

5.《go编程基础》视频教程,此教程是无闻大牛讲解的,github视频链接:https://github.com/Unknwon/go-fundamental-programming

原文:http://blog.csdn.net/hil2000/article/details/41261267

(转载)Go语言开发环境配置的更多相关文章

  1. Go语言开发环境配置

    一.我为什么要学习go语言 当今已经是移动和云计算时代,Go出现在了工业向云计算转型的时刻,简单.高效.内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发(毕竟它就是为此而设计的).到2014 ...

  2. python语言开发环境配置

    原作者:龙行天下-super 地址:https://www.cnblogs.com/longxingtianxia/p/10181901.html 要点:IDLE是一个轻量级python语言开发环境, ...

  3. C语言开发环境配置

    链接:http://pan.baidu.com/s/1qWkpD72 密码:zhig 将解压包直接解压放在C盘下. 右击我的电脑,点属性—>高级—>环境变量然后在PATH里加入C:\Min ...

  4. 【Linux 操作系统】阿里云服务器 操作实战 部署C语言开发环境(vim配置,gcc) 部署J2EE网站(jdk,tomcat)

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 博客总结 : 设置SecureCRT ...

  5. 阿里云服务器 操作实战 部署C语言开发环境(vim配置,gcc) 部署J2EE网站(jdk,tomcat)

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 博客总结 : 设置SecureCRT ...

  6. [转]配置 VIM 的 Go 语言开发环境

    本文是针对像我这样的 VIM 小白而写的,所使用的 VIM-GO 插件虽然步骤简单但不够详细,特写此文以做记录和分享.欢迎各位大神纠正补充! 特别说明 本博文不是 Go 语言环境搭建教程,只是 VIM ...

  7. Windows10下配置Linux下C语言开发环境

    今天为大家介绍如在Windows10下配置Linux下C语言开发环境,首先安装linux子系统:启用开发者模式 1.打开设置 2.点击更新和安全3.点击开发者选项 4.启用开发人员模式 5.更改系统功 ...

  8. Eclipse平台下配置Go语言开发环境(Win7)

    <Go语言编程>中写到:“从功能和易用性等方面考虑, Eclipse+GoEclipse.LiteIDE这两个环境在所有IDE里面是表现最好的”,所以笔者打算采用Eclipse+GoEcl ...

  9. go 语言开发环境的安装与配置

    go 语言开发环境的安装与配置 编辑器选择 一直以来都是用sublime,但是听说sublime对于golang的插件支持并不是特别完善,并且VS Code只要在自身所带的扩展商店里安装go插件就可以 ...

随机推荐

  1. Centos7 配置网络步奏详解

    Centos7 配置网络步奏详解 编辑网卡配置文件 vi /etc/sysconfig/network-script/ifcfg-ens01 备注:这里的ens01不是所有系统都叫这个,有的可能叫其他 ...

  2. oracle11G在linux环境下的卸载操作

    1.使用SQL*PLUS停止数据库[oracle@OracleTest oracle]$ sqlplus logSQL> connect / as sysdbaSQL> shutdown ...

  3. 小结getBytes()默认编码导致的xml字符串中出现乱码

    遇到乱码第一印象想到的是如何统一编码,很少注意到这期间穿插的某些过程也是一大隐患.. sae上部署了一个spring写的微信小程序,手机总关注测试号点击菜单得到的文本消息却是乱码.. 聚焦发送消息的部 ...

  4. [3D跑酷] GUIManager UI管理

    UI元素更新及界面跳转 继上篇日志<Unity开发之 GUIClickEventReceiver>,再谈一下我们如何管理游戏中的UI元素更新及界面跳转 UI绑定 图一:Inspector面 ...

  5. css3新属性的总结

    今天继续总结css3的一些css3新样式,先列一个简单的提纲,重要的还是圆角.阴影.渐变.文字缩略,最最重要的是过度transition,变换transform和animation圆角阴影渐变 圆形渐 ...

  6. swift为UIView添加extension扩展frame

    添加swift file:UIView+Extension import UIKit extension UIView { // x var x : CGFloat { get { return fr ...

  7. 查询Sqlserver数据库死锁的一个存储过程(转)

    链接 :http://www.cnblogs.com/mzhanker/archive/2011/06/04/2072739.html 使用sqlserver作为数据库的应用系统,都避免不了有时候会产 ...

  8. [py] 导入模块 reload(sys)

        #!/usr/bin/env python # coding: utf-8 import sys   reload(sys) #<------这个是什么意思 sys.setdefault ...

  9. U3D assetbundle加载与卸载的深入理解

    using UnityEngine; using System.Collections; using System; public class testLoadFromAB : MonoBehavio ...

  10. C#事件与接口

    using System; namespace ConsoleApplication1d { delegate void MsgDel(string s); interface IMsg { even ...