个人简介

Echo Blog


江湖无名 安心练剑
  • 22讲通关Go语言~完-18质量保证:Go语言如何通过测试保证质量?
    18 质量保证:Go 语言如何通过测试保证质量? 从这节课开始,我会带你学习本专栏的第四模块:工程管理。现在项目的开发都不是一个人可以完成的,需要多人进行协作,那么在多人协作中如何保证代码的质量,你写的代码如何被其他人使用,如何优化代码的性能等, 就是第四模块的内容。 这一讲首先来学习 Go 语言的单元测试和基准测试。 单元测试 在开发完一个功能后,你可能会直接把代码合并到代码库,用...
    2015-01-01 15:20:27 | 22讲通关Go语言~完
  • 22讲通关Go语言~完-17SliceHeader:slice如何高效处理数据?
    17 SliceHeader:slice 如何高效处理数据? 在[第 4 讲 集合类型:如何正确使用 array、slice 和 map?]中,你已经学习了 slice(切片),并且知道如何使用。这节课我会详细介绍 slice 的原理,带你学习它的底层设计。 数组 在讲 slice 的原理之前,我先来介绍一下数组。几乎所有的编...
    2015-01-01 15:20:27 | 22讲通关Go语言~完
  • 22讲通关Go语言~完-16非类型安全:让你既爱又恨的unsafe
    16 非类型安全:让你既爱又恨的 unsafe 上节课我留了一个小作业,让你练习一下如何使用反射调用一个方法,下面我来进行讲解。 还是以 person 这个结构体类型为例。 我为它增加一个方法 Print,功能是打印一段文本,示例代码如下: func (p person) Print(prefix string){ fmt.Printf("%s:Name is %s,Age ...
    2015-01-01 15:20:27 | 22讲通关Go语言~完
  • 22讲通关Go语言~完-15运行时反射:字符串和结构体之间如何转换?
    15 运行时反射:字符串和结构体之间如何转换? 我们在开发中会接触很多字符串和结构体之间的转换,尤其是在调用 API 的时候,你需要把 API 返回的 JSON 字符串转换为 struct 结构体,便于操作。那么一个 JSON 字符串是如何转换为 struct 结构体的呢?这就需要用到反射的知识,这节课我会基于字符串和结构体之间的转换,一步步地为你揭开 Go 语言运行时反射的面纱。 反射...
    2015-01-01 15:20:27 | 22讲通关Go语言~完
  • 22讲通关Go语言~完-14内存分配:new还是make?什么情况下该用谁?
    14 内存分配:new 还是 make?什么情况下该用谁? 程序的运行都需要内存,比如像变量的创建、函数的调用、数据的计算等。所以在需要内存的时候就要申请内存,进行内存分配。 在 C/C++ 这类语言中,内存是由开发者自己管理的,需要主动申请和释放,而在 Go 语言中则是由该语言自己管理的,开发者不用做太多干涉,只需要声明变量,Go 语言就会根据变量的类型自动分配相应的内存。 Go 语...
    2015-01-01 15:20:27 | 22讲通关Go语言~完
  • 22讲通关Go语言~完-13参数传递:值、引用及指针之间的区别?
    13 参数传递:值、引用及指针之间的区别? 上节课我留了一个思考题,关于指向接口的指针的思考。 在[“第 6 讲 struct 和 interface:结构体与接口都实现了哪些功能?”]中,你已经知道了如何实现一个接口,并且也知道如果值接收者实现了接口,那么值的指针也就实现了该接口。 现在我们再一起来复习一下接口实现的知识,然...
    2015-01-01 15:20:27 | 22讲通关Go语言~完
  • 22讲通关Go语言~完-12指针详解:在什么情况下应该使用指针?
    12 指针详解:在什么情况下应该使用指针? 这节课起我将带你学习本专栏的第三模块:深入理解 Go 语言。 这部分主要会为你讲解 Go 语言的高级特性,以及 Go 语言一些特性功能的底层原理。 通过这部分的学习,你不光可以更好地使用 Go 语言,还会更深入地理解 Go 语言,比如理解你所使用的 slice 底层是如何实现的等。 什么是指针 我们都知道程序运行时的数据是存放在内存中的,...
    2015-01-01 15:20:27 | 22讲通关Go语言~完
  • 22讲通关Go语言~完-11并发模式:Go语言中即学即用的高效并发模式
    11 并发模式:Go 语言中即学即用的高效并发模式 上节课我为你讲解了如何通过 Context 更好地控制多个协程,课程最后的思考题是:如何通过 Context 实现日志跟踪? 要想跟踪一个用户的请求,必须有一个唯一的 ID 来标识这次请求调用了哪些函数、执行了哪些代码,然后通过这个唯一的 ID 把日志信息串联起来。这样就形成了一个日志轨迹,也就实现了用户的跟踪,于是思路就有了。 ...
    2015-01-01 15:20:27 | 22讲通关Go语言~完