- Go語言高級(jí)編程(第2版)
- 柴樹杉 曹春暉
- 1062字
- 2025-08-07 17:56:11
1.2.6 Go語言——2007—2009
貝爾實(shí)驗(yàn)室后來經(jīng)歷了多次動(dòng)蕩,包括Ken Thompson在內(nèi)的Plan 9項(xiàng)目原班人馬最終加入了谷歌公司。在Limbo等前輩語言誕生10多年后的2007年底,Go語言3個(gè)最初的設(shè)計(jì)者因?yàn)榕既坏囊蛩鼐奂揭黄鹋稢++(傳說是C++語言的布道師在谷歌公司到處鼓吹C++11各種強(qiáng)大的特性徹底惹惱了他們),他們終于抽出了20%的自由時(shí)間創(chuàng)造了Go語言。最初的Go語言規(guī)范從2008年3月開始編寫,最初的Go程序也是直接編譯為C語言,然后再二次編譯為機(jī)器碼。到2008年5月,谷歌公司終于發(fā)現(xiàn)了Go語言的巨大潛力,從而開始全力支持這個(gè)項(xiàng)目(谷歌的創(chuàng)始人甚至還貢獻(xiàn)了func
關(guān)鍵字),讓他們可以將全部工作時(shí)間投到Go語言的設(shè)計(jì)和開發(fā)中。在Go語言規(guī)范初版完成之后,Go語言的編譯器終于可以直接生成機(jī)器碼?了。
1.hello.go——2008年6月
下面是初期Go語言程序正式開始測(cè)試的版本:
package main func main() int { print "hello, world\n"; return 0; }
內(nèi)置的用于調(diào)試的print
語句已經(jīng)存在,不過是以命令的方式使用的。入口main()
函數(shù)還和C語言中的main()
函數(shù)一樣返回int
類型的值,而且需要return
顯式地返回值。每個(gè)語句末尾的分號(hào)也還存?在。
2.hello.go——2008年6月27日
下面是2008年6月27日的Go代碼:
package main func main() { print "hello, world\n"; }
入口函數(shù)main()
已經(jīng)去掉了返回值,程序默認(rèn)通過隱式調(diào)用exit(0)
來返回。Go語言朝著簡單的方向逐步進(jìn)?化。
3.hello.go——2008年8月11日
下面是2008年8月的代碼:
package main func main() { print("hello, world\n"); }
用于調(diào)試的內(nèi)置的print
由開始的命令改為普通的內(nèi)置函數(shù),使語法更加簡單一?致。
4.hello.go——2008年10月24日
下面是2008年10月的代碼:
package main import "fmt" func main() { fmt.printf("hello, world\n"); }
作為C語言中招牌的printf()
格式化函數(shù)已經(jīng)移植到了Go語言中,函數(shù)放在fmt
包中。不過printf()
函數(shù)名的開頭字母依然是小寫字母,采用大寫字母表示導(dǎo)出的特性還沒有出?現(xiàn)。
5.hello.go——2009年1月15日
下面是2009年1月的代碼:
package main import "fmt" func main() { fmt.Printf("hello, world\n"); }
Go語言開始采用是否大小寫首字母來區(qū)分符號(hào)是否可以導(dǎo)出。大寫字母開頭表示導(dǎo)出的公共符號(hào),小寫字母開頭表示包內(nèi)部的私有符號(hào)。但需要注意的是,漢字中沒有大小寫字母的概念,因此以漢字開頭的符號(hào)目前是無法導(dǎo)出的(針對(duì)該問題,雖然我國的Go語言用戶早在2013年就已經(jīng)給出過相關(guān)建議,但是目前仍沒有結(jié)果)。
6.hello.go——2009年12月11日
下面是2009年12月的代碼:
package main import "fmt" func main() { fmt.Printf("hello, world\n") }
Go語言終于移除了語句末尾的分號(hào)。這是Go語言在2009年11月10日正式開源之后第一個(gè)比較重要的語法改進(jìn)。從1978年《C程序設(shè)計(jì)語言》引入分號(hào)分隔的規(guī)則到現(xiàn)在,Go語言的設(shè)計(jì)者花了整整32年終于移除了語句末尾的分號(hào)。在這32年的演化過程中必然充滿了各種八卦故事,我想這一定是Go語言設(shè)計(jì)者深思熟慮的結(jié)果(現(xiàn)在Swift等新語言也是默認(rèn)忽略分號(hào)的,可見分號(hào)確實(shí)并不是那么重要)。
- Mastering RabbitMQ
- 跟小海龜學(xué)Python
- Python從入門到精通(精粹版)
- Yii Project Blueprints
- Go語言入門經(jīng)典
- Java程序設(shè)計(jì)教程
- Learning Redux
- C語言王者歸來
- Serverless工程實(shí)踐:從入門到進(jìn)階
- KnockoutJS Blueprints
- 米思齊實(shí)戰(zhàn)手冊(cè):Arduino圖形化編程指南
- Visual FoxPro程序設(shè)計(jì)教程(第3版)
- HoloLens Blueprints
- Activiti權(quán)威指南
- 前端程序員面試筆試通關(guān)寶典