mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-11-28 09:09:07 +00:00
zz
This commit is contained in:
parent
9531ea05f5
commit
620cbe2d2f
@ -10,7 +10,7 @@ Go語言有時候被描述爲“C類似語言”,或者是“21世紀的C語
|
|||||||
|
|
||||||
但是在Go語言的家族樹中還有其它的祖先。其中一個有影響力的分支來自Niklaus Wirth所設計的Pascal語言。然後Modula-2語言激發了包的概念。然後Oberon語言 摒棄了模塊接口文件和模塊實現文件之間的區别。第二代的Oberon-2語言直接影響了包的導入和聲明的語法,還有Oberon語言的面向對象特性所提供的方法的聲明語法等。
|
但是在Go語言的家族樹中還有其它的祖先。其中一個有影響力的分支來自Niklaus Wirth所設計的Pascal語言。然後Modula-2語言激發了包的概念。然後Oberon語言 摒棄了模塊接口文件和模塊實現文件之間的區别。第二代的Oberon-2語言直接影響了包的導入和聲明的語法,還有Oberon語言的面向對象特性所提供的方法的聲明語法等。
|
||||||
|
|
||||||
Go語言的另一支祖先,帶來了Go語言區别其他語言的重要特性,靈感來自於貝爾實驗室的Tony Hoare於1978年發表的鮮爲外界所知的關於併發研究的基礎文獻 *順序通信進程* (communicating sequential processes,縮寫爲CSP)。在CSP中,程序是一組中間沒有共享狀態的平行運行的處理過程,它們之間使用管道進行通信和控製同步。不過Tony Hoare的CSP隻是一個用於描述併發性基本概念的描述語言,併不是一個可以編寫可執行程序的通用編程語言。
|
Go語言的另一支祖先,帶來了Go語言區别其他語言的重要特性,靈感來自於貝爾實驗室的Tony Hoare於1978年發表的鮮爲外界所知的關於併發研究的基礎文獻 *順序通信進程* ( *communicating sequential processes* ,縮寫爲CSP)。在CSP中,程序是一組中間沒有共享狀態的平行運行的處理過程,它們之間使用管道進行通信和控製同步。不過Tony Hoare的CSP隻是一個用於描述併發性基本概念的描述語言,併不是一個可以編寫可執行程序的通用編程語言。
|
||||||
|
|
||||||
接下來,Rob Pike和其他人開始不斷嚐試將CSP引入實際的編程語言中。他們第一次嚐試引入CSP特性的編程語言叫Squeak(老鼠間交流的語言),是一個提供鼠標和鍵盤事件處理的編程語言,它的管道是靜態創建的。然後是改進版的Newsqueak語言,提供了類似C語言語句和表達式的語法和類似Pascal語言的推導語法。Newsqueak是一個帶垃圾迴收的純函數式語言,它再次針對鍵盤、鼠標和窗口事件管理。但是在Newsqueak語言中管道是動態創建的,屬於第一類值, 可以保存到變量中。
|
接下來,Rob Pike和其他人開始不斷嚐試將CSP引入實際的編程語言中。他們第一次嚐試引入CSP特性的編程語言叫Squeak(老鼠間交流的語言),是一個提供鼠標和鍵盤事件處理的編程語言,它的管道是靜態創建的。然後是改進版的Newsqueak語言,提供了類似C語言語句和表達式的語法和類似Pascal語言的推導語法。Newsqueak是一個帶垃圾迴收的純函數式語言,它再次針對鍵盤、鼠標和窗口事件管理。但是在Newsqueak語言中管道是動態創建的,屬於第一類值, 可以保存到變量中。
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ Go語言的面向對象是不同尋常的。它沒有類層次結構,甚至可
|
|||||||
|
|
||||||
有些章節的後面可能會有一些練習,你可以根據你對Go語言的理解,然後脩改書中的例子來探索Go語言的其他用法。
|
有些章節的後面可能會有一些練習,你可以根據你對Go語言的理解,然後脩改書中的例子來探索Go語言的其他用法。
|
||||||
|
|
||||||
書中所有的代碼都可以從gopl.io上的Git倉庫下載。go get命令可以根據每個例子的其導入路徑智能地穫取、構建併安裝。你隻需要選擇一個目録作爲工作空間,然後將GOPATH環境指向這個工作目録。
|
書中所有的代碼都可以從 http://gopl.io 上的Git倉庫下載。go get命令可以根據每個例子的其導入路徑智能地穫取、構建併安裝。你隻需要選擇一個目録作爲工作空間,然後將GOPATH環境指向這個工作目録。
|
||||||
|
|
||||||
Go語言工具將在必要時創建的相應的目録。例如:
|
Go語言工具將在必要時創建的相應的目録。例如:
|
||||||
|
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
## 更多的信息
|
## 更多的信息
|
||||||
|
|
||||||
最佳的幫助信息來自Go語言的官方網站,https://golang.org ,它提供了完善的參考文檔,包括編程語言規范和標準庫等諸多權威的幫助信息。同時也包含了如何編寫更地道的Go程序的基本敎程,還有各種各樣的在線文本資源和視頻資源,它們是本書最有價值的補充。Go語言的官方博客 blog.golang.org 會不定期發布一些Go語言最好的實踐文章,包括當前語言的發展狀態、未來的計劃、會議報告和Go語言相關的各種會議的主題等信息。
|
最佳的幫助信息來自Go語言的官方網站,https://golang.org ,它提供了完善的參考文檔,包括編程語言規范和標準庫等諸多權威的幫助信息。同時也包含了如何編寫更地道的Go程序的基本敎程,還有各種各樣的在線文本資源和視頻資源,它們是本書最有價值的補充。Go語言的官方博客 https://blog.golang.org 會不定期發布一些Go語言最好的實踐文章,包括當前語言的發展狀態、未來的計劃、會議報告和Go語言相關的各種會議的主題等信息(译注: http://talks.golang.org/ 包含了官方收录的各种报告的讲稿)。
|
||||||
|
|
||||||
在線訪問的一個有價值的地方是可以從web頁面運行Go語言的程序(而紙質書則沒有這麽便利了)。這個功能由來自 play.golang.org 的 Go Playground 提供,併且可以方便地嵌入到其他頁面中,例如 golang.org 的主頁,或 godoc 提供的文檔頁面中。
|
在線訪問的一個有價值的地方是可以從web頁面運行Go語言的程序(而紙質書則沒有這麽便利了)。這個功能由來自 https://play.golang.org 的 Go Playground 提供,併且可以方便地嵌入到其他頁面中,例如 golang.org 的主頁,或 godoc 提供的文檔頁面中。
|
||||||
|
|
||||||
Playground可以簡單的通過執行一個小程序來測試對語法、語義和對程序庫的理解,類似其他很多語言提供的REPL卽時運行的工具。同時它可以生成對應的url,非常適合共享Go語言代碼片段,滙報bug或提供反饋意見等。
|
Playground可以簡單的通過執行一個小程序來測試對語法、語義和對程序庫的理解,類似其他很多語言提供的REPL卽時運行的工具。同時它可以生成對應的url,非常適合共享Go語言代碼片段,滙報bug或提供反饋意見等。
|
||||||
|
|
||||||
基於 Playground 構建的 Go Tour (tour.golang.org),是一個繫列的Go語言入門敎程,它包含了諸多基本概念和結構相關的併可在線運行的互動小程序。
|
基於 Playground 構建的 Go Tour,https://tour.golang.org ,是一個繫列的Go語言入門敎程,它包含了諸多基本概念和結構相關的併可在線運行的互動小程序。
|
||||||
|
|
||||||
當然,Playground 和 Tour 也有一些限製,它們隻能導入標準庫,而且因爲安全的原因對一些網絡庫做了限製。如果要在編譯和運行時需要訪問互聯網,對於一些更複製的實驗,你可能需要在自己的電腦上構建併運行程序。幸運的是下載Go語言的過程很簡單,從 golang.org 下載安裝包應該不超過幾分鐘(譯註:感謝偉大的長城,讓大陸的Gopher們都學會了自己打洞的基本生活技能,下載時間可能會因爲洞的大小等因素從幾分鐘到幾天或更久),然後就可以在自己電腦上編寫和運行Go程序了。
|
當然,Playground 和 Tour 也有一些限製,它們隻能導入標準庫,而且因爲安全的原因對一些網絡庫做了限製。如果要在編譯和運行時需要訪問互聯網,對於一些更複製的實驗,你可能需要在自己的電腦上構建併運行程序。幸運的是下載Go語言的過程很簡單,從 https://golang.org 下載安裝包應該不超過幾分鐘(譯註:感謝偉大的長城,讓大陸的Gopher們都學會了自己打洞的基本生活技能,下載時間可能會因爲洞的大小等因素從幾分鐘到幾天或更久),然後就可以在自己電腦上編寫和運行Go程序了。
|
||||||
|
|
||||||
Go語言是一個開源項目,你可以在 https://golang.org/pkg 閲讀標準庫中任意函數和類型的實現代碼,和下載安裝包的代碼完全一致。這樣你可以知道很多函數是如何工作的, 通過挖掘找齣一些答案的細節,或者僅僅是齣於欣賞專業級Go代碼。
|
Go語言是一個開源項目,你可以在 https://golang.org/pkg 閲讀標準庫中任意函數和類型的實現代碼,和下載安裝包的代碼完全一致。這樣你可以知道很多函數是如何工作的, 通過挖掘找齣一些答案的細節,或者僅僅是齣於欣賞專業級Go代碼。
|
||||||
|
|
||||||
|
@ -22,9 +22,7 @@
|
|||||||
|
|
||||||
*“Go是一個開源的編程語言,它很容易用於構建簡單、可靠和高效的軟件。”(摘自Go語言官方網站:http://golang.org )*
|
*“Go是一個開源的編程語言,它很容易用於構建簡單、可靠和高效的軟件。”(摘自Go語言官方網站:http://golang.org )*
|
||||||
|
|
||||||
Go語言由來自Google公司的Robert Griesemer,Rob Pike和Ken Thompson於2007年9月開始設計和實現,
|
Go語言由來自Google公司的Robert Griesemer,Rob Pike和Ken Thompson三位大牛於2007年9月開始設計和實現,然後於2009年的11月對外正式發布(译注:关于Go语言的创世纪细节请参考 http://talks.golang.org/2015/how-go-was-made.slide )。語言及其配套工具的設計目標是具有表達力,高效的編譯和執行效率,有效地編寫高效和健壯的程序。
|
||||||
然後於2009年的11月對外正式發布。語言及其配套工具的設計目標是具有表達力,
|
|
||||||
高效的編譯和執行效率,有效地編寫高效和健壯的程序。
|
|
||||||
|
|
||||||
Go語言有着和C語言類似的語法外表,和C語言一樣是專業程序員的必備工具,可以用最小的代價穫得最大的戰果。
|
Go語言有着和C語言類似的語法外表,和C語言一樣是專業程序員的必備工具,可以用最小的代價穫得最大的戰果。
|
||||||
但是它不僅僅是一個更新的C語言。它還從其他語言借鑒了很多好的想法,同時避免引入過度的複雜性。
|
但是它不僅僅是一個更新的C語言。它還從其他語言借鑒了很多好的想法,同時避免引入過度的複雜性。
|
||||||
|
Loading…
Reference in New Issue
Block a user