Golang

春色满园关不住,一枝红杏出墙来。

写在前面的碎碎念 Go的原生map不是并发安全的,多个协程并发读写map被竞态检测到时会直接panic掉整个进程,recover都不能cover住...因此在写代码时,只要关于并发读写map都要谨记并发安全,印象中之前组里有出过这样的bug,凌晨左右发...

发布 0 条评论

排序永远是数据结构里永恒的话题,快排、归并排序这样基于分治思想排序的提出,极大的优化了插入排序、冒泡排序这样的O(N^2)排序算法。对于这样基于分治思想的排序,都可以写成多线程算法,但在C/C++下,很少有人把快排写成多线程,因...

发布 2 条评论

在Golang中顺序容器有两种,一种是普通的数组,一种是切片。 数组(array) 数组创建方式分为两种,一种是通过字面值,一种是通过new 结果 首先注意到,数组在创建的时候必须是在[ ]中指明了元素个数,或者使用[...]结合{1, 2, 3}来...

发布 0 条评论

在go中要主动把变量定义在堆上只有这两中方法,make与new,二者间的区别是非常大的。 (ps: 为何要强调是主动呢?因为go会做逃逸分析,编译器会帮你去最终哪些变量会放在堆上,因此在go中是不需要像C/C++一样关心变量的开辟位置的) n...

发布 0 条评论

不要把全局变量放在任何  ":="后面!!! 把Db作为全局变量,然后在init中Open的时候因为处理err,于是就 Db, err := sql.Open("mysql", dataSource) 结果再测的时候 想了半天怎么会访问非法内存的,后来就想起来了effective go上...

发布 0 条评论