Google最近发布新型的编程语言,Go。它被设计为将现代编程语言的先进 性带入到目前仍由C语言占统治地位的系统层面。然而,这一语言仍在试验阶段并在不断演变。程序员
Go语言的设计者计划设计一门简单、高效、安全和 并发的语言。这门语言简单到甚至不须要有一个符号表来进行词法分析。它能够快速地编译;整个工程的编译时间在秒如下的状况是常事。它具有垃圾回收功能,因 此从内存的角度是安全的。它进行静态类型检查,而且不容许强制类型转换,于是对于类型而言是安全的。同时语言还内建了强大的并发实现机制。编程
Go的语法传承了与C同样的风格。程序由函数组成,而函数体是一系列的语句序列。一段代码块用花括号括起来。这门语言保留有限的关键字。表达式使用 一样的中缀运算符。语法上并 无 太多出奇之处。数组
Go语言的做者在设计这一语言时坚持一个单一的指导原则:简单明了至上。一些新的语法构件提供了简明地表达一些约定俗成的概 念的方式,相较之下用C表达显得冗长。而其余方面则是针对几十年的使用所呈现出来的一些不合理的语言选择做出了改进。安全
变量是以下声明的:并发
var sum int // 简单声明 var total int = 42 // 声明并初始化
最值得注意的是,这些声明里的类型跟在变量名的后面 。乍一看有点怪,但这更清晰明了。好比,如下面这个C片断来讲:编程语言
int* a, b;
它并明了,但这里实际的意思是a 是一个指针,但b 不是。若是要将二者都声明为指针,必需要重复星号。而后在Go语言里,经过以下方式能够将二者都 声明为指针:函数
var a, b *int
若是一个变量初始化了,编译器一般能推断它的类型,因此程序员没必要显式的敲出来:post
var label = "name"
然而,在这种状况下var 几乎显得是多余了。所以,Go的做者引入了一个新的运 算符来 声明和初始化一个新的变量:spa
name := "Samuel"
Go语言当中的条件句与C当中所熟知的if-else构造同样,但条件不须要被打包在括号内。这样能够减小阅读代码时的视觉上的混乱。设计