072013
 

前一阵子因为工作需要,接触了一下Go语言。
起初看来这个语言的语法实在是非常的怪异,尤其是变量声明的方式,让从C语言之类转过来的人们非常不习惯。但是Golang的开发团队与给出了这些写变量声明的原因,而我看了之后觉得他们说的是对的:这种方式的声明在出现一大堆关于函数指针的嵌套定义的情况下,能够展示的比C语言更清晰。
另一方面,这是一种静态编译的语言,所以在移植性上非常优秀,基本上不会看到类似“缺少xxx.so”或者“找不到yyy.dll”之类的错误,脱离一堆依赖的感觉真的很好。
Golang的defer处理机制是把双刃剑。用得好,可以避免文件、Socket之类的不关闭造成的问题,但是新手用得不好,很有可能出现一些搞不清楚状况的panic。如一个file没有被真正打开过,却在defer中进行了关闭,就会出现关闭一个nil的调用。果断panic,报错的还不是defer这一行,而是return语句那行——defer里的东西正是这个时候被调用的。

 Posted by at 16:57

 Leave a Reply

(必须填写)

(必须填写,邮件地址不会被泄露)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>