Mac下搭建go语言开发环境

1、安装Golang的SDK

http://golang.org ,下载最新的安装包,之后双击安装即可。

安装完成之后,打开终端,输入go、或者go version(查看安装版本)出现如下信息即表示安装成功:

$ go version

go version go1.5.1 darwin/amd64

2、配置环境变量

安装完sdk之后接下来便是配置环境变量了,打开终端输入cd ~ 进入用户主目录,之后输入ls -all命令查看是否存在.bash_profile

文件,存在既使用vim .bash_profile打开并编辑该文件。根据自己实际情况,内容如下:

export GOPATH=/usr/local/go

export GOBIN=$GOPATH/bin

export PATH=$PATH:$GOBIN

GOPATH:日常开发的根目录。GOBIN:是GOPATH下的bin目录。

且需要gobin目录加入到path路径下,生成的可执行文件就可以直接运行了。

退出vim,使用source ~/.bash_profile即可完成对golang环境变量的配置了,可以在终端中输入go env查看配置后的效果:

$ go env

GOARCH="amd64"

GOBIN="/Users/lvtao/Documents/GOLang/bin"

GOEXE=""

GOHOSTARCH="amd64"

GOHOSTOS="darwin"

GOOS="darwin"

GOPATH="/Users/lvtao/Documents/GOLang"

GORACE=""

GOROOT="/usr/local/go"

GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"

GO15VENDOREXPERIMENT=""

CC="clang"

GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"

CXX="clang++"  

CGO_ENABLED="1"

 

3、liteide使用

 

   LiteIDE会预先为你在工程目录下创建main.go和doc.go文件。main.go文件中包含以下内容:


// Hello project main.go

package main

import (

   "fmt"

)

func main() {

   fmt.Println("Hello World!")

}


你可以点击工具栏上蓝色的编译执行按钮BR运行代码。你可以在在Build菜单中的B和BR按钮菜单中找到更多的关于编译和执行代码的命令。

如果你运行了你的程序,你可以在底部的编译输出(Build Output)窗口中看到程序运行结果。

如果程序没有运行,那么很有可能是你创建的工程类型不对或者文件路径错误。

LiteIDE中还有很多功能等待你去发掘,不过目前为止的这些已经足够我们使用Go语言了。


4、终端编译运行


编译该源文件并执行生成的可执行文件

[root@localhost go-examples]# go build hello.go  

[root@localhost go-examples]# ls  

hello hello.go  

[root@localhost go-examples]# ./hello  

Hello,GO!  


通过go build加上要编译的Go源文件名,我们即可得到一个可执行文件,默认情况下这个文件的名字为源文件名字去掉.go后缀。当然我们也可以通过-o选项来指定其他名字:

[root@localhost go-examples]# go build -o firstgo hello.go  

[root@localhost go-examples]# ls  

firstgo hello.go  


如果我们在go-examples目录下直接执行go build命令,后面不带文件名,我们将得到一个与目录名同名的可执行文件:

[root@localhost go-examples]# go build  

[root@localhost go-examples]# ls  

go-examples hello.go  


5、程序入口点(entry point)和包(package)

    Go保持了与C家族语言一致的风格:即目标为可执行程序的Go源码中务必要有一个名为main的函数,该函数即为可执行程序的入口点。除此之外 Go还增加了一个约束:作为入口点的main函数必须在名为main的package中。正如上面hellogo.go源文件中的那样,在源码第 一行就声明了该文件所归属的package为main。

    Go去除了头文件的概念,而借鉴了很多主流语言都采用的package的源码组织方式。package是个逻辑概念,与文件没有一一对应的关系。 如果多个源文件都在开头声明自己属于某个名为foo的包,那这些源文件中的代码在逻辑上都归属于包foo(这些文件最好在同一个目录下,至少目前 的Go版本还无法支持不同目录下的源文件归属于同一个包)。

我们看到hellogo.go中import一个名为fmt的包,并利用该包内的Printf函数输出"Hello, Go!"。直觉告诉我们fmt包似乎是一个标准库中的包。没错,fmt包提供了格式化文本输出以及读取格式化输入的相关函数,与C中的printf或 scanf等类似。我们通过import语句将fmt包导入我们的源文件后就可以使用该fmt包导出(export)的功能函数了(比如 Printf)。

在C中,我们通过static来标识局部函数还是全局函数。而在Go中,包中的函数是否可以被外部调用,要看该函数名的首母是否为大写。这是一种 Go语言固化的约定:首母大写的函数被认为是导出的函数,可以被包之外的代码调用;而小写字母开头的函数则仅能在包内使用。在例子中你也看到了 fmt包的Printf函数其首母就是大写的。

标签: linux golang
2016.9.28   /   热度:1650   /   分类: golang

发表评论:

©地球仪的BLOG  |  Powered by Emlog