Go语言入门 【一】:安装与环境配置

go吉祥物

本篇主要介绍go的生态。包括安装,ide,go命令三部分。随着作者的持续学习,内容可能会有所更新。

安装

截止到本文撰写,go的版本更新到了1.7.3.通常来说,安装go只需要到https://golang.org/dl/ 官网去下载对应的包安装即可。mac用户也可以通过homebrew,至于ubuntu用户也可以通过apt-get方式,这一点与寻常软件一致。

安装完成后,在控制台输入go version,控制台返回类似
go version go1.7.1 darwin/amd64 即表示成功。

验证完毕之后,还需要开发者配置几个环境变量:
对于macOS,作者配置在~/.zshrc中(通过官网下载的安装包安装):

export GOROOT=/usr/local/go
export GOPATH=$HOME/goworkspace
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

GOROOT:类似于Java中的JAVA_HOME,配置到go的安装目录,取决于安装方式和操作系统的不同,位置也不尽相同。
GOPATH:这个变量在其他语言中不常见,相当于是workspace,要存放代码,打包后的模块,可执行文件。配置之后配合后面讲到的go命令十分方便,可以看出go语言是一门工程化至上的语言。这里只要自定义一个目录即可。
PATH中加入这两个路径含义是可以直接在任何地方执行go生成的可执行文件。

至此,安装工作就全部结束了。

开发工具

总的来说go的开发工具相对Java较弱,主要有:

  • LiteIDE
  • Sublime
  • Vim
  • Eclipse
  • IntelliJ IDEA

5种选择,只有用LiteIDE可以比较方便的进行调试,其他工具都需要配置GDB,并且不是专门为go写的ide。而LiteIDE目前的版本还比较粗糙,作者选择的是Sublime。

通过packageControl添加gosublime

安装GoSublime插件后可以执行代码跳转,代码提示。调试基本靠print,当做锻炼自己的语言熟悉程度了。详细的ide安装步骤建议另行谷歌。

go命令

go命令是go中十分有特色的一个部分,通过go命令,可以很方便的实现其他语言需要第三方工具来做到的一些功能(如包管理)。
先来个汇总:

Go is a tool for managing Go source code.

Usage:

        go command [arguments]

The commands are:

        build       compile packages and dependencies
        clean       remove object files
        doc         show documentation for package or symbol
        env         print Go environment information
        fix         run go tool fix on packages
        fmt         run gofmt on package sources
        generate    generate Go files by processing source
        get         download and install packages and dependencies
        install     compile and install packages and dependencies
        list        list packages
        run         compile and run Go program
        test        test packages
        tool        run specified go tool
        version     print Go version
        vet         run go tool vet on packages

这是所有支持的命令。常用解释如下:
build: 将一个.go格式的源文件编译成可执行文件或模块,这取决于代码中的package,如果是package main,一般编译为可执行文件并生成到当前的目录。

install: build的同时,安装到(即拷贝到)GOPATH/bin目录下,这样在任何地方都可以执行了。

get: 相当于Java中的maven, gradle 做的事情了,如代码中使用到了一个第三方包github.com/go-sql-driver/mysql , 我们需要在build之前执行 go get github.com/go-sql-driver/mysql 。系统将会把代码下载到GOPATH/src/github.com/go-sql-driver/mysql�目录结构之下,这个目录结构是一个约定。之后,通过build命令就可以将这个包包含的代码一并编译。从这里可以看出go高度自由的包管理,同时对开源十分友好,工程化便捷没有多余操作。

fmt:执行go fmt xxx.go之后,将对目标文件的代码风格统一化,如大括号{}不另起一行,删除多余的空行等。在协作中统一所有人的编码风格是很好的。

run: 直接运行一个.go文件,不生成可执行文件。如 go run test.go

doc:doc命令现在被godoc命令所替代,需要安装godoc:

go get -v  golang.org/x/tools/cmd/godoc

这里也许需要翻墙,安装好之后,成为一个查看代码文档的简便工具。比如查询fmt.Println函数用法:

[~]$ godoc fmt Println
use 'godoc cmd/fmt' for documentation on the fmt command

func Println(a ...interface{}) (n int, err error)
    Println formats using the default formats for its operands and writes to
    standard output. Spaces are always added between operands and a newline
    is appended. It returns the number of bytes written and any write error
    encountered.

另外,通过命令在命令行执行 godoc -http=:端口号 比如godoc -http=:8080。然后在浏览器中打开127.0.0.1:8080,你将会看到一个golang.org的本地copy版本,真是欲罢不能。

另外的一些命令:
go version 查看go当前的版本
go env 查看当前go的环境变量
go test 执行这个命令,会自动读取源码目录下面名为*_test.go的文件,生成并运行测试用的可执行文件。
go list 列出当前全部安装的package

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容