近期小结
首先,跳了个槽,老公司交接中,希望新公司有新的感受,能学到更多的东西,对新公司寄予了N多期望。
其次,难得有大块的时间,顺手学了下golang。
其实几年前就折腾过golang,怎么说呢,年轻气盛,极度反感统一style,就弃之而去。现在想想,真是幼稚啊。
重新捡起来才发现golang的牛逼之处,天生支持并发编程(确切的说是从语言级别上提供了并发编程支持)- golang是一门工程性语言,而非学院派语言,一切都面向工程,所以直接从语言级别提供了并发编程的支持 - 虽然这遭到了很多学院派的讨伐,但个人还是很支持的,毕竟简单易懂的高效编程模型谁都喜爱。
以下是个人对golang的体会:
1. 首先,强约束,格式统一,不准存在未使用的声明,很省心。
2. 变量声明,结合了脚本语言(如python和js)和强类型语言(如Java)的优点,可以声明变量类型,也可以省略;还可以一次声明多个变量来接受多个值。
3. _ 接收符,类似Scala,但仅用于不需要使用的变量。
4. 多返回,一般第二个返回是异常 - 如果有。
5. 语法级别的goroutine和牛逼的 chan,二者结合就是并发编程之间的通信!
6. 鸭子类型,这个类似脚本语言,但描述需要篇幅较多,略。
对于有经验的开发者来说,golang极易上手,只需要转变下观念即可,如interface/struct/receiver之间的关系,但总的来说还是超级简单,毕竟是一门工程性语言,不讲究大而全。