Go是Google开发的一种编译型,并发型,并具有垃圾回收功能的编程语言。Robert Griesemer,罗勃·派克及肯·汤普逊于2007年9月开始设计Go语言,Go语言是基于Inferno操作系统所开发的。Go语言于2009年11月正式宣布推出,并在Linux及Mac OS X平台上进行了实现。
Go语言的语法接近C语言,但是对于变量的声明是不同的,其他语法不同之处是for循环和if判断式没有括号围绕。Go语言支持垃圾回收功能。Go语言的并行模型是以Tony Hoare的CSP为基础,采取类似模型的其他语言包括occam和Limbo。
Go 语言并不包括如异常处理、继承、泛型、断言、虚函数等功能。当然,Google 对于泛型的态度还是很开放的,但在该语言的常见问题列表中,对于断言的存在,则持负面态度,同时也为自己不提供型别继承来辩护。不同与Java,Go语言内嵌了关联数组(也称为哈希表(hashes)或字典(dictionaries)),就像字符串类型一样。
范例
下面是用Go语言写成的Hello World程序。
- package main
- import "fmt"
- func main() {
- fmt.Println("Hello, World")
- }
下面的例子说明了怎样用Go语言去实现一个像Unix中的echo命令的程序:
- package main
- import (
- "os"
- "flag" // command line option parser
- )
- var omitNewline = flag.Bool("n", false, "don't print final newline")
- const (
- Space = " "
- Newline = "\n"
- )
- func main() {
- flag.Parse() // Scans the arg list and sets up flags
- var s string = ""
- for i := 0; i < flag.NArg(); i++ {
- if i > 0 {
- s += Space
- }
- s += flag.Arg(i)
- }
- if !*omitNewline {
- s += Newline
- }
- os.Stdout.WriteString(s)
- }
【编辑推荐】