第二篇:macOS下Go开发环境的搭建+Go开发目录
2018-03-09 本文已影响251人
意一ineyee
一、macOS下Go开发环境的搭建
二、Go开发目录的规则
一、macOS下Go开发环境的搭建
1、Go安装包的下载及安装
- 下载:Go安装包下载地址
- 安装
安装包下载完成后,双击安装包,按着流程走就可以了,系统会默认将安装包安装到/user/local/go
目录下。
我们可以在打开命令行,输入命令go version
来确认安装包是否已经成功安装,如果输出信息类似go version go1.10 darwin/amd64
则代表安装成功,否则不成功我们需要额外处理。
2、Go几个重要的环境变量介绍
(1)GOROOT:
-
Go安装包在电脑上安装的位置,macOS下默认是
/usr/local/go
; -
我们一般不处理这个变量或者把它设置为
GOROOT=/usr/local/go
。
(2)GOBIN:
- 编译器和链接器的安装位置,默认是
$GOROOT/bin
; - 我们一般不处理这个变量或者把它设置为
GOBIN=$GOROOT/bin
。
(3)PATH:
- 可执行文件的路径,即
bin
文件夹的路径; - 我们需要把
GOROOT
下的bin
和GOPATH
下的bin
都添加到这个变量上,也是用冒号隔开,如PATH=$PATH:$GOROOT/bin:$GOPATH/bin
,如果有多个GOPATH
,我们可以使用PATH=$PATH:$GOROOT/bin:${GOPATH//://bin:}/bin
来将所有GOPATH
下的bin
添加到PATH
变量。
(4)GOPATH:
- 是我们为一个Go项目开辟的一个文件夹,即用来存放我们的源码文件、包文件和可执行文件的文件夹,默认和
GOROOT
一样,但是Go1.1开始我们必须把它修改为自定义的其它路径,在这个路径下我们必须创建src
、pkg
和bin
三个文件夹分别用来存放源码文件、包文件和可执行文件; - 我们需要把这个变量设置为自定义的路径,如
GOPATH=/Users/yiyi/Desktop/GoTest
;当然GOPATH也可以设置多个,多个路径之间用冒号:
隔开,如GOPATH=自定义GOPATH1:自定义GOPATH2
。
3、LiteIDE环境变量的配置
LiteIDE是一款专为Go语言开发的IDE,LiteIDE下载地址。下载完打开App使用就可以了。
但是在使用LiteIDE开发Go程序之前,需要在LiteIDE这里配置一下Go环境变量。
- 配置
GOROOT
、GOBIN
和PATH
:配置一遍后一般不需要再去管了,除非自己明确要改动
- 配置
GOPATH
:以后每创建一个新的Go项目,都需要在这里添加一个GoPath,否则编译会报错
二、Go开发目录的规则
1、Go项目的目录结构和包名必须符合一定的规则才能确保项目能跑起来:
- 一个Go项目--该Go项目的主目录--下必须包含三个子目录:
bin
、pkg
、src
; - 我们的源代码都是必须创建在
src
文件夹里面的,因此我们每创建一个包就需要在src
文件夹里创建一个子文件夹来存放这个包(文件夹名最好和包名起一致了,要不读起来不好读)
2、例如我们现在要创建一个简易的计算器,有如下目录结构:
11.png- 该项目的主目录为
Calculator
,其下包含bin
、pkg
、src
三个子目录; -
src
文件夹下有main
文件夹用来存放main包的内容(即main.go
文件),有simpleMath
文件夹用来存放simpleMath包的内容(即add.go、sub.go、mul.go、div.go以及它们的单元测试文件都是属于simpleMath包的,所以它们放在同一个文件夹下)
接下来可以学习Go语言了。
比如我们现在写一个HelloWorld
的项目,那么新建项目:
我们写代码如下:
/**
* 每个Go源文件的开头都是一个package声明,表示该Go代码所属的包。包是Go语言里最基本的分发单位,也是工程管理中依赖关系的体现。
* 要想生成Go可执行文件,就建立一个名为main的包,并且这个包里必须得有一个名为main()的函数最为Go程序的执行起点。
*/
package main
/**
* 在包声明之后,是一系列的import语句,用于导入该程序所依赖的包。下面的Println()函数属于fmt包,所以此处引入。
* 需要注意的是:不能在源文件中引入不使用的包,否则编译器会报错,就和花括号必须一个在上一个在下一样,在语言层面规范开发习惯。
*/
import "fmt"
/**
* 所有的Go函数都必须以func开头,一个常规的函数定义包含以下部分
* func 函数名(参数列表)(返回值列表) {
// 函数体
}
*/
func main() { // Go语言里的main()函数不能带参数、不能带返回值
fmt.Println("Hello World!")
}
cmd+r
运行,如下:
参考博客:Go路径及开发目录