Golang123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 Golang环境安装 源码包下载 国外官方:https://golang.org/dl/ 中国镜像:https://golang.google.cn/dl/ 中文网站:https://studygolang.com/dl Linux环境 源码包 go1.14.4.linux-amd64.tar.gz 解压源码包到/usr/local sudo tar -zxvf go1.14.4.linux-amd64.tar.gz -C /usr/local/ 配置环境变量 打开~/.bashrc 添加配置变量 export GOROOT=/usr/local/goexport GOPATH=$HOME/goexport PATH=$PATH:$GOROOT/bin:$GOPATH/bin GOROOT 表示源码包所在路径 GOPATH 开发者Go的项目默认路径 不同的操作系统具体配置不同 检测开发环境 手动加载~/.bashrc source ~/.bashrc go version go --help 没有任何错误提示表示搭建成功 IDE推荐 收费 Goland 免费 VSCode Vim + GO 插件 GO语言特性 优势 简单的部署 可直接编译成机器码可执行 不依赖其他库 直接运行即可部署 静态类型语言 语言层面的并发 强大的标准库 runtime系统调度机制 高效的GC垃圾回收 丰富的标准库 简单易学 25个关键字 C语言简洁基因,内嵌C语言支持 面向对象特征 跨平台 应用场景 云计算基础设施领域 docker kubernetes etcd consul cloudflare CDN 七牛云存储 基础后端软件 tidb influxdb cockroachdb 微服务 go-kit micro 互联网基础设施 以太坊 hyperledger 不足 包管理,大部分都在GitHub。 所有Exception都用Error来处理(比较有争议)。 对C的降级处理,并非无缝,没有C降级到asm那么完美(序列化问题)。 基本语法 程序入口main函数 变量声明及其初始化,var关键字 var a int //仅声明 var v_name = value //声明并初始化,类型推导。 v_name := value //短声明:省略var关键字,类型推导 var ( //这种分解的写法,一般用于声明全局变量 a int b bool) //多变量声明 _, value := 7, 5 //赋值 常量,const关键字 const identifier [type] = value 函数 defer slice map 面向对象 struct struct interface{} reflect Go Modules与GOPATH goroutine channel Select