Google Go:新興語言的代表
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)
- }
【編輯推薦】