避坑与技巧
已收录文章:15篇
-
nil 在 Go语言中只能被赋值给指针和接口。接口在底层的实现有两个部分:type 和 data。在源码中,显式地将 nil 赋值给接口时,接口的 type 和 data 都将为 nil。此时,接口与 nil 值判断是相等的。500 收藏
-
Go语言中使用的垃圾回收使用的是标记清扫算法。进行垃圾回收时会 stoptheworld。不过,在当前 1.3 版本中,实现了精确的垃圾回收和并行的垃圾回收,大大地提高了垃圾回收的速度,进行垃圾回391 收藏
-
Go语言中提供了 MD5、SHA-1 等几种哈希函数,下面我们用例子做一个介绍,代码如下所示。package mainimport( "fmt" "crypto/sha1" "crypto/md5")func main(){ TestString:="Hi,pandaman!387 收藏
-
密码学里目前有两大经典算法,一个是对称加解密,其代表是 AES 加解密;另一个是非对加解密,其代表是 RSA 加解密。这里就以这两个经典算法为例,简单列下其在Go语言里实现的代码。AES 加372 收藏
-
Go语言原生支持并发是被众人津津乐道的特性。goroutine 早期是 Inferno 操作系统的一个试验性特性,而现在这个特性与操作系统一起,将开发变得越来越简单。很多刚开始使用 Go语言开发的人都很363 收藏
-
有时我们需要能够⽣成类似 MySQL 自增 ID 这样不断增大,同时又不会重复的 id。以支持业务中的⾼并发场景。比较典型的,电商促销时,短时间内会有大量的订单涌入到系统,比如每秒 10w+。明339 收藏
-
在大多数的编程语言中,映射容器的键必须以单一值存在。这种映射方法经常被用在诸如信息检索上,如根据通讯簿的名字进行检索。但随着查询条件越来越复杂,检索也会变得越发困难。下面326 收藏
-
本节将通过示例来为大家介绍 Go语言中文件读写的相关操作。读文件在 Go语言中,文件使用指向 os.File 类型的指针来表示的,也叫做文件句柄。在前面章节使用到过标准输入 os.Stdin 和标准输出 o282 收藏
-
现在的一些流行设计思想需要建立在反射基础上,如控制反转(Inversion Of Control,IOC)和依赖注入(Dependency Injection,DI)。Go语言中非常有名的 Web 框架 martini(https://github.com/go-martini/martini)就256 收藏
-
一般的 HTTPS 是基于 SSL(Secure Sockets Layer)协议。SSL 是网景公司开发的位于 TCP 与 HTTP 之间的透明安全协议,通过 SSL,可以把 HTTP 包数据以非对称加密的形式往返于浏览器和站点之间,从而避免235 收藏
-
本节将分别为大家讲解 Go语言是如何与 C/C++ 进行交互的。与 C语言进行交互工具 cgo 提供了对 FFI(外部函数接口)的支持,能够使用 Go语言代码安全地调用 C语言库,可以访问 cgo 文档主页:https232 收藏
-
从不同的并发执行的协程中获取值可以通过关键字 select 来完成,它和 switch 控制语句非常相似也被称作通信开关;它的行为像是“你准备好了吗”的轮询机制;select 监听进入通道的数据223 收藏