Go语言是谷歌2009发布的第二款开源编程语言。
Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
优势
- 可直接编译成机器码,不依赖其他库,glibc的版本有一定的要求,部署就是扔一个文件上去就完成了
- 静态类型语言,但有动态语言的感觉。静态类型的语言就是在编译阶段可以检查出来大部分的隐藏问题,动态语言的感觉就是有很多包可以使用,写起来的效率很高
- 语言层面支持并发,这个就是GO最大的特色,天生的支持并发。
- 内置runtime,支持垃圾回收,这属于动态语言的特性之一吧。虽然现在GC不太算完善,但足以应付我们所遇到的大多数情况!
- 丰富的标准库,Go目前已经内置了大量的库,特别是网络库特别的强大
- 内置强大的工具,Go语言内置了很多工具链,最好的应该是
go fmt
工具,自动化格式代码,能够让团队review如此简单,代码格式一模一样 - 跨平台编译,如果你写的Go代码不包含cgo,那么就可以使用windows系统编译linux应用
- 内嵌C支持,Go里面也可以直接包含C代码,利用现有的丰富的C库
安装GO
- MAC安装
进入下载地址,这里我选择的是go1.9.2.darwin-amd64.pkg
,双击下载文件,一路默认安装点击下一步,这个时候go就会自动安装到你的系统当中!
- Linux安装
进入下载地址,根据自己的系统情况选择相应的安装包。这里我选择的是go1.9.2.linux-amd64.tar.gz
,解压至指定目录,然后在/etc/profile
配置环境变量:
export PATH=$PATH:/root/go/bin
这里,我将go
解压在了/root
下面!然后在控制台执行命令使环境变量生效:
source /etc/profile
安装完成之后,我们在位置执行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
bug start a bug report
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
Use "go help [command]" for more information about a command.
Additional help topics:
c calling between Go and C
buildmode description of build modes
filetype file types
gopath GOPATH environment variable
environment environment variables
importpath import path syntax
packages description of package lists
testflag description of testing flags
testfunc description of testing functions
Use "go help [topic]" for more information about that topic.
GOPATH设置
go
命令依赖一个重要的环境变量:$GOPATH
在Linux中设置:打开/etc/profile
文件,输入以下内容:
export GOPATH=/root/go_path
执行命令使环境变量生效:
source /etc/profile
值得注意的是,该目录必须是真实存在的,并且$GOPATH
约定有三个子目录:
- src:存放源代码(.go、.c等)
- pkg:编译后生成的文件(例如:.a)
- bin:编译后生成的可执行文件
$GOPATH
下的src目录是接下来开发应用程序的主要目录,所有的源代码都是放在这个目录下面,那么一般我们的做法就是一个目录一个项目,例如$GOPATH/src/cx_demo
表示cx_demo
项目。接下来,我们进入src目录,创建一个项目:
mkdir cx_demo
进入cx_demo
项目,新建一个demo_1.go
文件,代码如下:
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
编译应用
在上面的栗子中,我们编写了一个go
程序,那么我们如何编译它呢?首先,我们进入到应用程序的目录之下,执行go build
命令,那么会在该目录下面生成一个可执行文件:
./cx_demo
我们这样执行它,将会输出以下内容:
Hello World!
至此,Over~~~~