页首Html代码

返回顶部

golang 特殊知识点

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 Vendor

posted @ 2018-04-07 20:06  ayanmw  阅读(554)  评论(0编辑  收藏  举报

页脚Html代码