接触 Golang

  cheney

    Golang 也有多年了,docker都火起来了,当初决定选择第二语言的时候,由于考虑到:

    • Golang 并不排在编程语言的排行榜前十
    • 国内各大云平台并没有 golang 的支持
    • 编程库特别是高级应用库太小

    并没有把 Golang 列入选择的列表,而是走了 Python 的路线. Python 入门确实挺容易,但是实际上看到高阶的部分也是挺麻烦的,目前也是陷入了一个瓶颈期.此时,又拿起了 Golang 的书.

    Golang 的语法读下来,感觉就是 C 的语法糖,由于 C 的基础很好,看起来完全不费力.有个别地方稍微有点别扭,吐槽一下:

    1. 包引用的方式很好
      模块化的代码结构很适合经验积累,不用再写头文件是大趋势.
      包名要加引号,这个是不是也是多余的? 这点感觉还是 Python 的样子好.

    2. 括号跟在上一行的后边
      括号问题的争论被一下摁住了,但是不符合我的习惯, fmt 似乎不自动纠正这个问题,只是编译的时候报错.当初站错了队营啊~

    3. 类型放在后面是出于什么考虑
      我觉得放在前面后面无所谓,但是这么改肯定是有哪些考虑的.知乎上有人问过了: http://www.zhihu.com/question/21656696/

    4. 未使用的变量报错
      这个有点坑,因为调试的时候不方便.就不能分 debug 和 release 么?

    5. 反引号的字符串
      和 markdown 略微冲突, 粘贴代码的时候得小心.

    6. goto
      保留了 goto , 看来对程序员很信任, 不像 java 像防贼一样防着程序员.但是还是觉得有超级 breaswitch whilek 够用了.

    7. for switch while
      for 增强了, 很好. switch 增强了, 很好, while去掉了, 很好.

    8. slice array
      对 C 来说增强了不少, 对 Python 来说,差的远了.

    9. new make
      为什么内建的和自建的要分开?不明白.
      a := [3]int{1, 2, 3} // 声明了一个长度为3的int数组
      这里是大括号? 写成小括号多顺手啊.

    10. 其他

    • 规定了目录结构就像 java 的 workspace 一样.
    • 编译出来永远是单文件,不支持动态库,升级怎么搞? 难道大型项目都是单文件的? 网络游戏服务端都是单文件的?
    • “丢过去就能跑” 还没体验到.