Go语言继承了很多语言的精华,可以从2个维度来看。
语言的继承
语言的继承是说Go继承了不同语言的精华部分,而不是说集成。
语言 | 继承了什么 |
---|---|
c | Pointer、Struct(内嵌) |
python | 声明定义后置 |
c++ | interface,内置Map,新增slice |
java | 垃圾回收机制,反射机制,包 |
erlang | CSP vs Actor |
那么相对于这几门语言GO优点究竟是什么,就是一门汇集所有语言的大杂烩吗。不,go语言是google的大牛们,其中还有c语言的创始人,制造一门大杂烩?那可能是你不知道自己不知道。
Go语言是集中了各门语言的优点,但是这些优点是有选择的,以少为多,用最少的特性实现几乎所有其它语言用繁复的特性才能实现的场景。
例如说Go只用了interface,它可以实现C++、JAVA几乎所有场景,而且采用了非侵入式的方式,使得Go在面向对象上非常强大。
例如说Go仍使用指针,但引入垃圾回收机制,比C内存管理不知道要简化了多少。
例如erlang的进程现场思想,采用CSP来实现这一思想,可以轻易实现高并发。
函数式vs面向对象
范式 | 继承了什么 |
---|---|
函数式 | 匿名函数、闭包 |
面向对象 | interface |
Go也支持函数式的一些特性,按照函数式特性可以实现函数等的一些组合。
总结
Erlang和GO式两门非常精彩的语言,值得深入研究和学习。
网友评论