Golang

Golang test模块使用

go test命令是一个按照一定的约定和组织来测试代码的程序。在包目录内,所有以_test.go为后缀名的源文件在执行go build时不会被构建成包的一部分,它们是go test测试的一部分。 在*_test.go文件中,有三种类型的函数:功能测试函数、基准性能测试(benchmark)函数、示例函数。 1. test文件和函… 阅读更多 »Golang test模块使用

Golang并发调度GMP原理(转载)

Golang并发原理及GPM调度策略 1. Goroutine(Golang Coroutine) 使用多核CPU实现并行处理,使应用在多核cpu实现并行处理的方案主要是多进程与多线程两种方式,多进程模型相对简单,但是有着资源开销大及进程间通信成本高的问题。多线程模型相对复杂,会有死锁,线程安全,模型复杂等问题,但却因为资源开销… 阅读更多 »Golang并发调度GMP原理(转载)

Golang类型转换小结

1. 类型转换方式 1.1. 强制类型转换 语法:<结果类型> := <目标类型> ( <表达式> ) 类型转换是用来在不同但相互兼容的类型之间的相互转换的方式,所以,当类型不兼容的时候,是无法转换的。 func main() { //整型int强转为浮点型,强转为int64 var num1… 阅读更多 »Golang类型转换小结

golang中bytes包(转载)

golang标准库中提供了bytes包,该包几乎和strings包给string提供的功能一样,只不过bytes包对应的是[]byte。和strings一样,并不修改传入变量,而是返回其副本修改之后的内容。 整个包分为以下几种操作:转换、比较、去除、分割、查找、替换 1. 转换 将s的副本中所有字符修改成大写(小写),然后返回 … 阅读更多 »golang中bytes包(转载)

Golang单元测试gomock

1. go mock单元测试 搞单元测试,如果碰到这些情况: 一个函数,内部包含了很多并且很深的调用,但是如果单单测这个函数,其实实现的功能很简单。 一个函数,包含了其他还未实现的调用。 函数内部对数据的要求极为苛刻。 那么这时候就可以考虑使用mock来处理。 mock,简而言之就是可以通过注入我们所期望返回的数据,或者我们所期… 阅读更多 »Golang单元测试gomock

深入理解Golang之context(转载)

context是Go并发编程中常用到一种编程模式。本文将从为什么需要context,深入了解context的实现原理,以了解如何使用context。 1. 前言 这篇文章将介绍Golang并发编程中常用到一种编程模式:context。本文将从为什么需要context出发,深入了解context的实现原理,以及了解如何使用cont… 阅读更多 »深入理解Golang之context(转载)