最近学go语言的小结

    因为单位业务需要(据说是http://www.oschina.net/p/docker 这个方向),最近开始学go语言。google做这门语言的目的在于代替部分C/C++在服务器端开发,这门语言是以C为主干,模仿java,javascript及C++的基础上,做了些微创新。个人感觉就是强类型语言版的javascript++。
    1、文件结构,和C/C++一样的主文件。主函数如main可以写在主文件前面,而全局变量及函数写在后面,C/C++这样做要专门的声明,这个功能php也有,不过应该是php4以后的事。


2、变量的作用域和javascript类似,因而很方便地实现了闭包。


3、模块及结构体的变量及函数没有显式声明public及private,而是第一个字母大写就是public,小写反之。模块分公私不知道有什么用;结构体/对象这样搞,以后要把private改成public就有点不方便——不过可以新加一两个public函数调用private的变量或函数。


4、变量必须声明后才能使用,且声明后默认必须使用;强制性的编码规范。这些都有利于写出健壮的程序,缺点估计只是影响新手学习这一点。


5、指针:
C语言的指针--,另外使用了C++的“&”这个符号表示引用。除了使用结构体之外,个人以为要少用指针,多用标准库。


6、泛型:
暂时用接口实现泛型,运行效率比较低下。


7、模板: 这个应该是仿C++的模板。模板是一种动态生成代码的方式,虽然不如一些语言的宏那样方便,但多数情况下够用吧,我想。实际上我没用过go语言这个功能。


8、并发编程:
在学,没有发言权。


9、语法
对于学过C\C++ Java C# php javascrpt中任何一门的人来说,学习起来应该是毫无压力的。


10、对象
对象由结构体实现,所以没有构造和析构函数的概念。结构体的匿名成员实现继承,可以多继承,但遇到一样的变量或方法就碰掉了。和C语言的面向对象类似,但更易实现。


11、运行效率
单线程比java慢,估计现在还是实验性的,为方便以后加特性,所以没做什么优化。据说要放弃C,要像java一样搞个虚拟机,估计这样效率还有提升的空间。


优点:
开发团队比较强大:成员中有一位C语言及UNIX的创始人——C语言和Ruby据说是坑最多的语言。


基本没有历史负担,暂时没看到有什么坑。


够简单,比C语言好学好配(windows上好配,linux上没java好配——sudo要靠网速,中国的网速因公司不同而不同)好用,所以对于学校来说适合做强类型语言的入门语言——那些有C语言基础的老师也好学,要大学老师去学erlang,这不可能。


缺点:


热更新和热部署的机能不成熟:
有笑话说java程序编译的时间就是程序员喝咖啡的时间。热部署还无所谓,热更新是影响开发效率的事情。虽然go语言编译速度比java快得多,但项目大了一样慢。开发web程序的话,个人觉得还是php这种改了后直接F5一下的比较爽。


erlang和node.js是golang的主要竞争对手。erlang及node.js(javascript和c++)都是年头久远的语言,热更新和热部署都解决地不错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值