摘要:
math/rand crypto/rand linux真随机数 参考资料 math/rand math/rand实现了伪随机数算法,和其它的编程语言类似,操作逻辑都是先设置随机数种子,然后再获取随机数序列。这样每次生成的随机数序列都是不一样的。 package main import ( "fmt" 阅读全文
摘要:
context emptyCtx valueCtx cancelCtx timerCtx 参考资料 context context是go1.7之后引入的包,主要用于在多层级的子协程中控制流程和传递信息。 context的接口如下。 type Context interface { // 返回绑定当前 阅读全文
摘要:
defer 规则一:在函数退出时执行 规则二:当defer被声明时,其参数就会被实时解析 规则三:defer执行顺序为先进后出 参考资料 defer go语言中的defer可以将指定的语句延迟执行,用于实现资源的回收。 规则一:在函数退出时执行 需要注意,defer后的语句是在函数退出时执行,而不是 阅读全文
摘要:
资源限制 内存限制 CPU限制 查看容器资源占用 参考资料 资源限制 docker提供了控制容器资源的功能。docker底层通过linux内核namespace技术来实现资源的隔离,通过linux内核cgroups技术来实现资源的限制。主要包括CPU,内存,磁盘IO资源的限制。 内存限制 执行doc 阅读全文
摘要:
switch语法 type switch 参考资料 switch语法 在go中,switch可以支持传入各种类型进行选择,相当于从第1个case到最后一个case遍历进行比较,执行最先满足条件的case。 并且go语言还规定必须要显式写明fallthrough语句才会接着执行下一个case,不用再写 阅读全文
摘要:
go数组 初始化 访问不存在的元素会panic for range遍历数组 数组的比较 go切片 初始化 访问不存在的元素会panic for range遍历数组 切片的比较 nil切片和空切片 append追加元素 参考资料 go数组 数组是一组相同类型元素的线性序列,在go中,数组是值类型,所以 阅读全文
摘要:
初始化顺序 参考资料 初始化顺序 go语言标准规定了多个编译单元的初始化顺序,包的初始化顺序按照包引入的顺序进行初始化,如果有依赖关系先解决依赖关系,按依赖的顺序进行初始化。 如果某个包被多次导入的话,也只会初始化一次。 对于同一个包中的多个.go文件,实现一般按照文件名排序,进行初始化 首先按顺序 阅读全文
摘要:
变量 变量声明 作用域与变量覆盖 常量 常量声明 iota 参考资料 变量 变量声明 一般形式的变量声明,可以同时声明多个同类型变量,初始化为默认值或者可以手动赋初始值。 // case1 var identifier type // case2 var identifier1, identifie 阅读全文
摘要:
go数据类型 基本类型 字符串类型 派生类型 参考资料 go数据类型 基本类型 | 类型 | 说明 | 占用内存 | 默认初始值 | | : : | : : | : : | : : | | bool | 布尔型 | 1字节 | false | | int8/16/32/64 | 有符号定长整型 | 阅读全文
摘要:
docker0网络 自定义网络 参考资料 docker0网络 docker启动后会自动创建名为docker0的虚拟网桥,功能类似于局域网中的交换机。同时,docker会分配一个本地未使用的虚拟网段,比如172.17.0.0/16,并将第一个ip172.17.0.1作为虚拟网桥的ip。 rc@rc-v 阅读全文