go map的坑

发布时间 2023-11-26 23:33:11作者: 潜行1

range时不能动态的增加map的range范围

golang的map是hash表实现的,hash表的遍历就是遍历所有的桶,所以新添加的元素可能出现在之前遍历过的桶中,这样就会有些新添加的元素可能遍历不到。
实际生成环境中,不建议遍历一个正在写入的map,这并不是一种好的设计,如果确实有这样的需求,要特别注意rehash操作内存重新分配,原来遍历的指针可能失效导致core掉。

原理先不说,不建议这么做。

示例代码:

使用signal.Notify无法捕获kill信号

这是自然

运行一个不主动停止的程序

linux下的grep, win下的 findstr都可以

yml中的特殊字符

字符串值默认不需要使用符号包裹,如果有特殊字符可以使用双引号和单引号,前者会转义,后者不会转义; 没有测试反引号是否可用。