02 2019 档案
摘要:关于延时调用函数(Deferred Function Calls) 延时调用函数基本语法如下: 当一个函数前有关键字 defer 时,那么这个函数执行会被推迟到包含这个 defer 语句的函数即将返回前才执行, 如下示例: 运行打印输出结果: 需要注意的是,defer 调用的函数参数,在定义 def
阅读全文
摘要:文章转载地址:https://www.flysnow.org/2017/05/16/go-in-action-go-unit-test.html 什么是单元测试? 单元测试一般用来测试我们的代码逻辑是否有问题,有没有按照我们的期望运行,以保证代码质量 大多数的单元测试都是针对某一个函数方法进行测试,
阅读全文
摘要:什么是传值(值传递)? 传值的意思是:函数传递的总是原来这个东西的一个副本、一个副拷贝。比如我们传递一个 int 类型的参数,传递 的其实这个参数的一个副本;传递一个指针类型的参数,其实传递的是这个指针的一份拷贝,而不是这个指针指向的 值 对于 int 这类基础类型的我们可以很容易理解,它们就是一个
阅读全文
摘要:文章转载地址:https://www.flysnow.org/2018/10/20/golang-for-range-slice-map.html 如果我们要遍历某个数组,Map 集合、Slice 切片等,Go 语言(Golang) 为我们提供了比较好的 For Range 方式。 range 是一
阅读全文
摘要:文章转载地址:https://www.flysnow.org/2017/05/21/go-in-action-go-benchmark-test.html 什么是基准测试? 基准测试,是一种测试代码性能的方式,比如你有多种不同的方案,都可以解决问题,那么到底哪种方案性能 更好呢?这时候我们就可以使用
阅读全文
摘要:Encode 将一个对象编码成 JSON 数据,接受一个 interface{} 对象,返回 []byte 和 err Marshal 函数将会递归遍历整个对象,依次按照成员类型对这个对象进行编码,类型转换如下: 1 bool 类型转换成 JSON 的 boolean 2 整数、浮点数等数值类型转换
阅读全文
摘要:文章转载地址:https://www.flysnow.org/2017/06/13/go-in-action-go-reflect.html 1. TypeOf 和 ValueOf 在 Go 的反射定义中,任何接口都由两部分组成,一个是接口的具体类型,一个是具体类型对应的值。比如: var i in
阅读全文
摘要:文章转载地址:https://www.flysnow.org/2017/04/03/go-in-action-go-interface.html 1.什么是 interface? 简单的说,interface 是一组 method 签名的组合,通过 interface 定义对象的一组行为 上一篇文章
阅读全文
摘要:在 Go 语言中,函数和方法不太一样,有明确的概念区分。其他语言中,比如 PHP 函数就是方法,方法 就是函数,但在 Go 语言中,函数是不属于任何结构体、类型的方法,也就是说函数是没有接收者的;而方法 是有接收者的,我们所说的方法要么属于一个结构体的,要么属于一个新定义的类型的 函数 函数和方法,
阅读全文