摘要:
在Golang中,有两个包提供了rand,分别为 "math/rand" 和 "crypto/rand", 对应两种应用场景。 "math/rand" 包实现了伪随机数生成器。也就是生成 整形和浮点型。 该包中根据生成伪随机数是是否有种子(可以理解为初始化伪随机数),可以分为两类: 有种子。通常以时 阅读全文
摘要:
Go语言拥有一套单元测试和性能测试系统,仅需要添加很少的代码就可以快速测试一段需求代码。 go test 命令,会自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件。输出的信息类似 性能测试系统可以给出代码的性能数据,帮助测试者分析性能问题。 单元测试——测试和验证代 阅读全文
摘要:
1.字符串的组成?Golang的字符串都是由单个字节连接起来的,每个字节都是UTF8编码标识的Unicode文本。(不需要在考虑中文不兼容问题) 2.如何遍历字符串?先看一个例子: 输出: 和想象中不太一样,接着看下面。 遍历有两种方式: for i:=0;i<len;i++{} for k,v:= 阅读全文
摘要:
Go Slices: usage and internals Introduction Go's slice type provides a convenient and efficient means of working with sequences of typed data. Slices 阅读全文
摘要:
Go 语言中的slice类型可以理解为是数组array类型的描述符,包含了三个因素: 因此当我们定义一个切片变量,s := make([]int, 5, 10),即为指向了一个最大长度为10的底层数组,目前切片s使用到的长度为5。 基于slice的定义,在使用slice时,有以下几点注意事项: 1. 阅读全文
摘要:
概述 Go 语言中的 new 和 make 一直是新手比较容易混淆的东西,咋一看很相似。不过解释两者之间的不同也非常容易。 new 的主要特性 首先 new 是内建函数,你可以从 http://golang.org/pkg/builtin/#new 这儿看到它,它的定义也很简单: 官方文档对于它的描 阅读全文
摘要:
并发模型 并发目前来看比较主流的就三种: 多线程:每个线程一次处理一个请求,线程越多可并发处理的请求数就越多,但是在高并发下,多线程开销会比较大。 协程:无需抢占式的调度,开销小,可以有效的提高线程的并发性,从而避免了线程的缺点的部分 基于异步回调的IO模型: 比如nginx使用的就是epoll模型 阅读全文