代码改变世界

golang 标准库 sync.Map 中 nil 和 expunge 区别

2019-07-02 10:10 by DillGao, 1306 阅读, 0 推荐, 收藏, 编辑
摘要:本文不是 sync.Map 源码详细解读,而是聚焦 entry 的不同状态,特别是 nil 状态和 expunge 状态的区分。 entry 是 sync.Map 存放值的结构体,其值有三种,分别为 value(真正的值)、nil、expunge(任意的指针,标记作用)。如果将其视为一种状态机的话, 阅读全文

apue 在 mac 环境编译错误

2019-02-19 11:36 by DillGao, 750 阅读, 0 推荐, 收藏, 编辑
摘要:参考资料:https://unix.stackexchange.com/questions/105483/compiling-code-from-apue 笔者使用 mac 学习 apue, 在编译的时候出现错误,错误如下: 在解决该问题时浪费很多时间,记下解决办法,希望可以帮助到你。 前提:已经正 阅读全文

Nil Channels Always Block(Go语言中空管道总是阻塞)

2018-07-20 17:53 by DillGao, 471 阅读, 0 推荐, 收藏, 编辑
摘要:Go语言中空管道总是阻塞 阅读全文

golang 千位分隔符

2018-05-03 17:34 by DillGao, 3672 阅读, 0 推荐, 收藏, 编辑
摘要:golang 千位分隔符 阅读全文

golang 导出CSV文件中文乱码的问题

2018-04-03 19:22 by DillGao, 6406 阅读, 0 推荐, 收藏, 编辑
摘要:golang 导出CSV文件中文乱码的问题 解决办法: 在csv文件的开头写入<!--?xml version="1.0" encoding="UTF-8"?--> UTF-8 BOM 阅读全文

Redis 事务

2018-03-03 12:13 by DillGao, 283 阅读, 0 推荐, 收藏, 编辑
摘要:一、Redis 事务是什么 Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。 一个 阅读全文

Redis 分库

2018-03-02 18:57 by DillGao, 8781 阅读, 1 推荐, 收藏, 编辑
摘要:Redis 可以分库,相当于 MySQL 中的 database。控制数据库总数在<!--?xml version="1.0" encoding="UTF-8"?--> redis配置文件中设置,默认是 16 个。数据库名称是整数索引标识,而不是由一个数据库名称字符串。 选择数据库用 select 阅读全文

Golang http post error : http: ContentLength=355 with Body length 0

2018-01-06 12:15 by DillGao, 5367 阅读, 0 推荐, 收藏, 编辑
摘要:参考:https://stackoverflow.com/questions/31337891/net-http-http-contentlength-222-with-body-length-0 问题阐述:在使用 golang http 包发送 post 请求时出现报错,类似 http: Cont 阅读全文

golang error (slice of unaddressable value)

2017-12-18 19:05 by DillGao, 1516 阅读, 0 推荐, 收藏, 编辑
摘要:使用 Golang 将生成的 md5 转化为 string 的过程出现如下编译错误: 错误解析: 值得注意的一点是 func Sum(data []byte) [Size]byte 这个函数返回的结果是数组(array)而不是切片(slice)。 用下面的例子说明,编译错误的那行是因为 [3]int 阅读全文

cannot assign to struct field xxx in map

2017-11-30 19:27 by DillGao, 7240 阅读, 2 推荐, 收藏, 编辑
摘要:golang 中对 map 类型中的 struct 赋值报错 ./test.go:16:15: cannot assign to struct field a["tao"].age in map 原因是 map 元素是无法取址的,也就说可以得到 a["tao"], 但是无法对其进行修改。 解决办法: 阅读全文