go blog随笔
- 最近看go blog, 发现go升级到1.7了,最大的改进是编译的二进制文件缩小了近30%.
- 那么这30%是怎么来的呢,什么特征使其压缩了文件大小:
- ssa (Static Single Assignment,静态单赋值) 编译方法,压缩5%
- method pruning 方法修剪,压缩15%
- compact format 更合适的格式, 压缩5-15%
其中method prying 和compact format都涉及到了reflect包。那接下来我们就说说golang 的reflect吧。
deep equal:以前写utest的时候,比较map,只能比较各长度,现在有了reflect.DeepEqual,终于可以深度比较了。
a := map[int]string{1: "hello", 2: "hi"}
b := map[int]string{2:"hi", 1:"hello"}
fmt.Println("deep equal", reflect.DeepEqual(a, b))
答案是true
golang的bytes包跟strings包一样强大,strings包有的方法,bytes包基本上都有额。bytes.Join, bytes.HasPrefix, bytes.LastIndex, bytes.Split……跪拜了。
有疑问加站长微信联系(非本文作者)