Go语言是在2009年11月10日 由Google开源的一门编程语言.号称是"21世纪的C语言"
Go 语言(或称 Golang)是云计算时代的 C 语言。 Go 语言的诞生是为了让程序员有更高的 生产效率, Go 语言专门针对多处理器系统应用程序的编程进行了优化,使用 Go 编译的程 序可以媲美 C 或 C++代码的速度,而且更加安全、支持并行进程。
从C语言中继承了很多设计理念,如表达式语法,结构控制,基础数据类型,传值,指针
开放源代码 ,Go本身是用Go语言编写的
是静态型和编译型
引入 包 的概念,用于组织程序结构
自动垃圾回收,一般由Go运行时系统负责
天然支持并发
从语言层面就支持并发,使用很简单
goroutine,协程,高效利用CPU
基于CSP并发模型
采用管道通信机制,通过管道channel 实现不同goroutine之间的相互通信
函数可以多返回值
新颖的slice 和defer语句引入
go编写的程序可以直接编译成机器码,不依赖其他库,以及跨平台编译
内置强大的工具链
丰富的标准库, 特别是网络库很强大
内嵌C代码支持
语法简单,代码风格强制统一
Go语言中文网
Go语言中文文档
Go语言标准库中文文档
Go语言圣经(中文版)
Go中国技术社区
Golang技术论坛
《Go程序设计语言》
《Go语言学习笔记》
《Go并发编程实战》
无论是Windows 环境或者是Linux环境,亦或是Mac 环境都需要下载Go语言的 SDK ,下载地址如下 Go安装包下载地址 ,具体安装细节参看 安装说明
安装包安环好之后有两个环境变量需要注意(GO语言开发这两个环境变量一定要配置好)
GOROOT : Go语言SDK的安装路径需要配置到系统环境变量中去GOAPTH : Go语言项目的存放路径,也就是工作目录搭建开发环境
window10 系统 搭建步骤(window10 下搭建相对简单)
从 golang中国 下载window的安装包(注意是32位还是64位系统)
下载的安装包可以直接安装(记住自己的安装路径,在配置系统环境变量的时候用到,安装路径尽量不要带中文 )
配置系统环境变量
Ubuntu18
下载安装包文件
wget https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz安装文件文件
mv go1.12.7.linux-amd64.tar.gz /opt sudo tar -zxvf go1.12.7.linux-amd64.tar.gz配置Golang环境变量
vim /etc/profile使用vim打开profile文件,并在文件内容最末端添加如下内容
export GOROOT=/opt/go export PATH=$PATH:$GOROOT/bin export GOPATH=$HOME/goproject重新登录一下再验证golang环境是否安装成功
go env GOARCH="amd64" GOBIN="" GOCACHE="/home/gong/.cache/go-build" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/home/gong/goproject" GOPROXY="" GORACE="" GOROOT="/opt/go" GOTMPDIR="" GOTOOLDIR="/opt/go/pkg/tool/linux_amd64" GCCGO="gccgo" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build199119735=/tmp/go-build -gno-record-gcc-switches"代码片段分析
go语言编写的包含代码的文件的后缀是 .go
package main 每个go源代码文件的开头都是package声明的, 指明该文件属于哪个包,go语言的代码是使用包来组织的,包类似于其他编程语言中的库和模块,一个包由一个或者多个.go的源文件组成,放在一个文件夹中,文件夹的名称一般描述了包的作用
import “fmt” 引入一个叫做"fmt"的包,引入该包之后,可以使用fmt包中的函数,例如:fmt.Println()
func main(){
} func是一个关键字,表示函数 main是函数名,main函数在go语言中有特殊的作用,main函数表示主函数,也就是整个程序的入口函数
要生成Go可执行程序,必须建立一个名字为main的包,并且在该包中包含一个叫main()的函数(该函数是Go可执行程序的执行起点)
go语言中的main()函数, 不能传递参数,也不能定义返回值
go语言程序中的注释有两种
一种是 /* 块注释 */
另一种是 // 行注释
在cli 命令行下执行
$ go run HelloWorld.go hello world 通过 go run 命令可以直接运行 .go程序(类似执行一个脚本)通过 go build 命令可以对 .go文件进行编译,生成.exe文件