AI
推荐
模板社区
专题
登录
免费注册
首页
思维导图
详情
Golang 概念汇总
2019-09-03 16:38:35
0
举报
分享方式
仅支持查看
AI智能生成
学习 go 概念总结
Golang
模板推荐
作者其他创作
大纲/内容
defer
os.Exist
命令
清除已安装的 package
1.1. 手动删除 GOPATH/src 下的 package 源码文件夹
1.2 手动删除 GOPATH/pkg/ 下编译后的 package 文件
2.1 执行删除编译后的 package 文件 go clean -i github.com/motement/gore...
2.2 手动删除 GOPATH/pkg/ 下编译后的 package 文件
goroutine
并发/锁
sync.Mutex 锁
Sync.WaitGroup 携程同步
sync.RWMutex 读写锁
CSP
通讯优于共享
与 Actor 区别
1. actor 之间直接通讯
2. actor 模式的 mailbox 容量是无限的, goland 有限制
goland channel
select
多渠道的选择
超时控制
reflect 反射
Unsafe 不安全编程 ch24
panic
用于不可恢复的错误
panic 退出前会执行 defer 函数
与 os.Exist 区别是 panic 能打印出错误异常栈、会执行 defer 函数
子主题
recover
帮助go截获错误(一般来自 panic)
警告:利用 recover 机制使程序从错误中恢复过来。是不推荐的;会形成僵尸进程而且 health check 失效
推荐:Let it Crash
package
基本的可复用模块
访问规则
函数首字母大写可在 package 外访问
函数首字母小写则只能 package 内访问
同一个目录下的 Go 源码文件 package 要保持一致
项目的 GOPATH 需要配置
init 方法
在 main 被执行前,所有依赖的 package 的 init 方法都将会被之心
每个保重可以有多个 init 方法
远程 package 使用
download from github. e.g: go get -u 'github.com/easierway/concurrent_map'
1. 获取远程依赖
通过 go get 获取当本地不存在时才会从 Github 获取
通过 go get -u 强制从网络更新远程依赖
2. 注意代码在 Github 上的组织形式,直接以代码路径开始不要有 src 以适应 go get
依赖管理
glide
1. 进入当前 package 下执行 glide init 生成依赖 yaml 配置文件
2. 执行 glide install 根据 glide.yaml 文件生成 package vender 文件夹并将依赖保存在此目录下
测试
benchmark
assert
BDD
goconvey
DeepEqual
使用 reflect.DeepEqual 是可以比较的
slice map
架构模式
pipe - filter
收藏
立即使用
Golang 概念汇总
汪小萍
职业:软件工程师
去主页
Collect
Get Started
指标存储汇总
Collect
Get Started
毛利润汇总
Collect
Get Started
创建指标汇总模板
Collect
Get Started
概念理解2
评论
0
条评论
下一页
图形选择
思维导图
主题
补充说明
AI生成
修改AI描述
去编辑
重新生成
提示
关闭后当前内容将不会保存,是否继续?
取消
确定
Document