golang 代码不须要分号
;
可是又会本身在底层增长;
号 ,因此 golang的{
左花括号必须在代码的最后一行,而不能在新的一行;
golang 代码组织里须要注意 vendor 和 internal 的特殊用法,internal 不会主动出如今godoc中,可是能够手动输入路径;
golang 的time.Format(string)string 方法,参数必须是:2006-01-02 15:04:05
而不能是自定义的年月日时间,虽然说方便记忆,可是你Format注释就不能说明白了么? 还要我百度搜索,不友好;
golang 的map结构,每次都会故意乱序,实在是太恶心了;;; 我作权重随机的时候,就必需要先转顺序固定的数组slice了;有序或者无序 不重要,关键两次遍历 顺序都不同,这样就很差玩了!
golang 的map[]struct{} 添加进入map后的元素 是不能修改的 ! 好想念C++的STL map (其实这样也挺好的,学习Erlang思想,只能拷贝,不能修改,能保证并发下的程序健壮性),不过必需要make,也是硬伤。
golang 的import "./package" 基本上没用,必须使用完整package路径,我作单元测试UnitTest必须在同一个目录,若是在子目录test,则必须指定完整路径,太恶心,增长重构成本!
golang 的类型必须显式转换, int int32 int64 就不能自动转换?
golang 没有模板, 因此看到代码里有一个函数 ConvertIntSliceToInt32Slice 我就以为 有点小烦躁!
golang 的函数返回值,若是是定义有多个返回值参数,还必须用 相似(int,error)
这样的括号扩住,没有括号就报错,有点恶心;
golang 的多函数返回值,不能链式调用,加上类型不能隐式转换,我要声明一些 多余的临时变量,恶心!
golang 没有const限定,这个原本是让开发人员减小错误的发生的(见 effectiveC++ 条款4);可是golang没有,golang的数据 slice map 都无法修改,跟C++彻底不一样,到是与Erlang 差很少.烦躁.golang
参考连接:
Golang Vendor数组