随笔分类 -  golang

摘要:何时使用值类型 1.如果接受者是一个 map,func 或者 chan,使用值类型(因为它们本身就是引用类型)。2.如果接受者是一个 slice,并且方法不执行 reslice 操作,也不重新分配内存,使用值类型。3.如果接受者是一个小的数组或者原生的值类型结构体类型(比如 time.Time 类型 阅读全文
posted @ 2018-05-20 00:17 charlieroro 阅读(393) 评论(0) 推荐(0) 编辑
摘要:The unsafe Package in Golang Golang的unsafe包是一个很特殊的包。 为什么这样说呢? 本文将详细解释。 来自go语言官方文档的警告 unsafe包的文档是这么说的: Go 1 兼容性指南这么说: 当然包名称暗示unsafe包是不安全的。 但这个包有多危险呢? 让 阅读全文
posted @ 2018-05-16 23:51 charlieroro 阅读(1613) 评论(0) 推荐(0) 编辑
摘要:这里不介绍数组和切片的使用技巧,主要看下2者的区别。 首先看下它们的定义: 数组:类型 [n]T 表示拥有 n 个 T 类型的值的数组。 切片:类型 []T 表示一个元素类型为 T 的切片。 看一个数组的例子: 输出结果如下,可以发现y的内容变了,但是X没有变 [1 2 3] [1 2 3][1 2 阅读全文
posted @ 2018-03-22 19:59 charlieroro 阅读(6112) 评论(0) 推荐(1) 编辑
摘要:defer defer是go提供的一种资源处理的方式。defer的用法遵循3个原则 在defer表达式被运算的同时,defer函数的参数也会被运算。如下defer的表达式println运算的同时,其入参i也会被运算,结果为初始化值0,故defer调用中会打印“0” 1 func a() { 2 i 阅读全文
posted @ 2018-03-21 15:00 charlieroro 阅读(3721) 评论(0) 推荐(0) 编辑