按照Go语言规范,任何类型在未初始化时都对应一个零值:布尔类型是false,整型是0,字符串是"",而指针,函数,interface,slice,channel和map的零值都是nil。
创建Slice时可以用这个方式:data:=make([]map[string]string,0,10) 指定切片的长度;
go build -gcflags "-N -l -m" -gcflags "-N -l" 参数组织优化和内联 "-m" 输出优化信息,可以避免断点和单步执行无法准确对应源码行,避免小函数和局部变量被优化掉。
go build -gcflags "-m" -ldflags "-w -s" -ldflags "-w -s" 链接器剔除符号表和调试信息,可以减小可执行文件的大小,增加反汇编的难度。