Golang简介 环境安装 源码下载 http://golang.org/dl 安装 直接解压后放在 /usr/local/编译器是 /usr/local/go/bin/go源码在 /usr/local/go/src 配置环境变量 编辑 .bashrc 运行go version 检查安装是否成功GOPATH 代表开发代码的默认路径, 后面有其他管理工具 IDE Golang的优势 Golang适用产品 云原生 docker, k8s, etcd, consul, cloudflare 数据库 tidb, influxdb, cockroachdb 微服务 go-kit, micro, typhon 区块链 以太坊, hyperledger Golang的不足 Golang 特色语法 Hello World src就是workspace, 里面的每一个文件夹就是一个工程mkdir firstGolang Golang定义变量 多返回值 导入包 包搜索路径 $GOPATH函数名首字母大写代表公有函数, 首字母小写代表私有函数导入包必须使用 指针 (不常用) 就是直接传实参的内存引用, 接收函数通过指针对参数的修改在函数外部也生效 defer(finalizer) defer类似类的finalizer和try里面的finally函数, 在声明代码体的最后执行defer在return之后执行, 这一点是和Java不同的多条defer后添加的先执行 数组 数组的定义 定长数组 缺点 动态数组(切片) 长度不限引用传递, 函数内直接修改 数组遍历 切片 声明方式 切片的长度len表示切片可用长度切片的容量cap表示内存中保留的总空间 切片追加元素 截取切片 切片截取的是引用, 修改会影响原始数据 深copy Map 声明Map 遍历Map Struct结构体 结构体对象是值传递的, 如果想在函数内修改结构体对象的值, 需要使用指针赋值 继承 Interface 接口本身是一个指针, 接收对象实例时只能传入指针& 元类/类型判断 interface{} (Object类, 万能接口, instanceof) 变量的内部结构 变量 类型转换 反射 反射解析结构体标签Tag 使用结构体Tag解析json文件实例 Golang 高级内容 Goroutine 总结自刘丹冰的视频 https://www.bilibili.com/video/BV1gf4y1r79E