主题:【原创】介绍一下Go语言(1)之前的话 -- zllwy
Go的一个设计目标是在尽量简单的基础上,提供一组正交(orthogonal)的语言特性。使得这些语言特性的应用也比较简单明了。我对Go的感觉就是一套趁手好用的工具,每件工具都有自己独立的功能,都设计得比较精巧,而它们又可以通过简单的结合来提供强大的综合功能。这里把我喜欢的一些语言特性罗列一下:
1 函数的多返回值。一个函数可以返回多个值。类似于python可以返回一个tuple。这个特性太方便了。所以我把它排在第一位。:-)当然由于这个特性,Go的call convention和C不一样。Go的compiler(非gccgo)不能和C的call convention兼容,在和C进行连接的时候要通过特殊的步骤(cgo)。目前Go可以调用C的函数(通过SWIG可以调用C++)。但反过来还不行。
2 Array slice。也和python类似的功能一样,可以用来访问一个array的不同区段。
3 强大的for和switch。Go里面没有了while和do。for可以表达任何循环。和range结合起来基本起到了可以iterate各种type的作用。switch实际上起到连串else if的作用。
4 内置map。这个很多dynamic language都有,不过static language的还不多见。也算是抄python吧。
5 closure。这个不用说了吧。
6 defer。有点像Java的finally。不过可以写在函数任何地方。感觉红来保证资源的释放比finally更方便。
7 garbage collection。这个也列在这里吧。
8 程序本身的UTF-8支持。
9 panic/recover用来处理runtime exception。类似于exception。感觉Java里面exception有点被滥用了。exception应该只用来处理罕见的错误,而不应该用来控制流程。我觉得多返回值很大程度上已经使得错误处理方便很多了。
10 变量定义的短形式。你可以写
a := 1
自动就把a定义为int了。可以少些很多废话。
11 变量类型定义。终于把C/C++的变态格式改过来了。类型的表达式放在了变量名的后面,初始化放在最后。清楚,简单。
12 简单的变参定义。又抄了python。
其他还有很多小的特性。感觉用Go写程序比较轻松简单。我想跟C接近,又消除了C的很多不足,是最大的原因吧。
- 相关回复 上下关系8
🙂我见过最牛的是把【】给overload了 匹马西风 字56 2011-01-29 21:42:26
🙂同意 zllwy 字230 2011-01-27 14:35:02
🙂函数调用其实是polish notation 1 美人他爹 字309 2011-01-27 14:55:09
🙂【原创】介绍一下Go语言(5)其他特性
🙂11 变量类型定义。 博客南 字24 2011-01-26 20:32:18
🙂Not intuitive zllwy 字104 2011-01-26 21:11:23
🙂exception handling ilcc 字254 2011-01-25 11:17:40
🙂Rob Pike: Geek of the week 3 zllwy 字132 2011-01-23 21:48:35