我眼中的go的语法特点

因为基本从c#/javascript/c/c++/python/lua/action script,一路走来,对所有的C系列的语法既熟悉又有好感;

那在看语言的时候肯定会与C系列的东西进行类比,那就总结一下go语言与C比的特别之处

  • 声明变量常量及函数类型时放在名称的后面,这点有点类似as3,只不过把as3声明变量时的那冒号去掉而已
  • 只能定义结构体及函数,没有类这种东西,就是说,函数和成员变量不能放一块,这一点和C一样
  • if及for等子句的条件,不需要使用括弧包起来,这点和python2一样
  • 循环子句只用for,但是这个for比较特殊,可以使用里面有两个分号,或者直接什么条件都不带变成while(true)的
  • 跟python一样,函数可以使用多返回值,声明变量及赋值可以一行多个
  • 跟python一样,很多系统函数实现基本一致的功能,len获得数组、字符符的长度,range可以获得循环的迭代器,make可以产生map实例。如m := make(map[string]int)
  • 跟python一样,有个delete,只不过是这么用的delete(m, "Answer")
  • 跟python一样,内置了字符串、数组、map
  • 更特别的是这个内置的map居然是个std::multimap,调一次相同key,再调一次就会变成下面那个
posted @ 2014-07-23 23:50  冷侃  阅读(751)  评论(0编辑  收藏  举报