Go语言学习笔记

Reading time ~1 minute

之前有看过Go Tour ,一知半解的。后来花了两天基本上就能编写Go并完成一些基本工作了。想来Go的入门门槛还是挺低的。其实就差不多看了一本70多页书《An Introduction to Programming in Go》,当天看完第二天就慢慢熟络Go了。

之前很想再好好温习一下C/C++,不过现在有Go就发现没那个必要了。有人说Go是C和Python的结合体,这个我也部分赞同:既有C的高效,又有函数式语言的便捷;并且有C和Python的基础,学起来易如反掌了。直接编译成二进制文件比依赖VM(如Java、C#)或运行环境(如Python)的其他语言啥的都好多了。个人使用起来,有如下几点感受:

  1. 并发的高效和方便性。Goroutine协程的轻量级(保证资源占用尽量的少),加上编程过程中调用的便捷(go关键词后加一个函数调用即可),让Go成为服务端的新秀。Channel作为消息传递,也是并发中通信所必须的。

  2. 整合了不少函数式语言的特性,保留指针以尽量降低内存消耗,默认Unicode支持,Go实现GC(不过也有不好的地方,比如分配超过32K的对象时才会触发GC,如果用完大内存后想释放也比较麻烦),语言简捷(没有复杂的OO,但Struct及Interface已然覆盖所有)

另外使用过程中发现,Go对简单函数,如返回primitive的函数都会编译时自动inline,比Scala总得显式声明的好。

Original post: http://blog.josephjctang.com/2014-09/go/

问问题的妙用

记得看《你的灯亮着吗?》这本书时就感觉通过提问的方式比陈述、祈使效果都好很多。原书说的是这么一个场景,就是说日内瓦湖景区的上山隧道。进隧道通常都需要开大灯,可出隧道时司机们往往忘记关大灯,而搞得游完景区后车上的电已经耗尽,只得拖车或让警察来帮助发动。后来就出了几个版本的提示语:1. **请关灯...… Continue reading

时间管理中的断舍离

Published on May 20, 2018

科學の上網的便捷方法

Published on February 03, 2018