Go語(yǔ)言
Go語(yǔ)言是Google開(kāi)發(fā)的一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語(yǔ)言。為了方便搜索和識(shí)別,有時(shí)會(huì)將其稱為Golang(夠浪)。
Go語(yǔ)言于2009年11月正式宣布推出,成為開(kāi)放源代碼項(xiàng)目,并在Linux及Mac OS X平臺(tái)上進(jìn)行了實(shí)現(xiàn),后來(lái)追加了Windows系統(tǒng)下的實(shí)現(xiàn)。
2012年,Go語(yǔ)言的創(chuàng)造者們發(fā)布了它的1.0版本。Go語(yǔ)言的創(chuàng)造者們包括Unix操作系統(tǒng)和B語(yǔ)言(C語(yǔ)言的前身)的創(chuàng)造者、UTF-8編碼的發(fā)明者Ken
Thompson,Unix項(xiàng)目的參與者、UTF-8編碼的聯(lián)合創(chuàng)始人和Limbo編程語(yǔ)言(Go語(yǔ)言的前身)的創(chuàng)造者Rob Pike,以及著名的Javascript引擎V8的創(chuàng)造者Robert Griesemer。
語(yǔ)言特點(diǎn)
Go語(yǔ)言是一門強(qiáng)類型的通用編程語(yǔ)言。它的基礎(chǔ)語(yǔ)法與C語(yǔ)言很類似,但對(duì)于變量的聲明有所不同,也對(duì)其他的一些優(yōu)秀編程語(yǔ)言有所借鑒。另外,Go語(yǔ)言支持垃圾回收。
與C++相比,Go語(yǔ)言并不包括如異常處理、繼承、泛型、斷言、虛函數(shù)等功能,但增加了 Slice 型、并發(fā)、管道、垃圾回收、接口(Interface)等特性的語(yǔ)言級(jí)支持。
Go語(yǔ)言對(duì)并發(fā)編程的支持是天生的、自然的和高效的。Go語(yǔ)言為此專門創(chuàng)造出了一個(gè)關(guān)鍵字“go”。使用這個(gè)關(guān)鍵字,我們就可以很容易的使一個(gè)函數(shù)被并發(fā)的執(zhí)行。
撰寫風(fēng)格
在Go語(yǔ)言中有幾項(xiàng)規(guī)定,而且這些是強(qiáng)制的,當(dāng)不匹配以下規(guī)定時(shí)編譯將會(huì)產(chǎn)生錯(cuò)誤。
1)每行程序結(jié)束后不需要撰寫分號(hào);
2)大括號(hào)"{"不能夠換行放置;
3)if 判斷式和 for 循環(huán)不需要以小括號(hào)包覆起來(lái);
代碼示例
簡(jiǎn)單又暴力,以下用Go語(yǔ)言寫一個(gè)“Hello World!”程序。
package main
import "fmt"
func main() { ? ?
? ? fmt.Printf("Hello World!")
}
這段代碼運(yùn)行,會(huì)在控制臺(tái)下打印出“Hello World!”。
如果你把fmt.Printf("Hello World!")改為fmt.Println("Hello World!"),在打印“Hello World”后換行。
還有值得注意的一點(diǎn)是:Golang官方的約定是每行程序結(jié)束后不需要撰寫分號(hào)“;”,但是如果你不小心加了,編譯器也不會(huì)報(bào)錯(cuò)。