回到简体

This commit is contained in:
chai2010
2016-02-15 11:06:34 +08:00
parent 9e878f9944
commit 2b37b23285
177 changed files with 2354 additions and 2354 deletions

View File

@@ -1,61 +1,61 @@
# Go語言聖經(中文版)
# Go语言圣经(中文版)
Go語言聖經 [《The Go Programming Language》](http://gopl.io) 中文版本,僅供學習交流之用。
Go语言圣经 [《The Go Programming Language》](http://gopl.io) 中文版本,仅供学习交流之用。
[![](cover_middle.jpg)](https://github.com/golang-china/gopl-zh)
-版本http://golang-china.github.io/gopl-zh
- 離線版本http://github.com/golang-china/gopl-zh/archive/gh-pages.zip
- 目主http://github.com/golang-china/gopl-zh
- 原版官http://gopl.io
-线版本http://golang-china.github.io/gopl-zh
- 离线版本http://github.com/golang-china/gopl-zh/archive/gh-pages.zip
- 目主http://github.com/golang-china/gopl-zh
- 原版官http://gopl.io
{% include "./version.md" %}
-------
# 者序
# 者序
在上個世紀70年代貝爾實驗室的[Ken Thompson][KenThompson]和[Dennis M. Ritchie][DennisRitchie]合作明了[UNIX](http://doc.cat-v.org/unix/)操作繫統,同[Dennis M. Ritchie][DennisRitchie]了解[UNIX](http://doc.cat-v.org/unix/)繫統的移植性問題而發明了C言,貝爾實驗室的[UNIX](http://doc.cat-v.org/unix/)和C語言兩大發明奠定了整個現代IT行最重要的件基(目前的三大桌面操作繫統的中[Linux](http://www.linux.org/)和[Mac OS X](http://www.apple.com/cn/osx/)都是源[UINX]()繫統,兩大移平台的操作繫統iOS和Android也都是源[UNIX](http://doc.cat-v.org/unix/)繫統。C家族的編程語言占據統治地位達幾十年之久)。在[UINX]()和C語言發明40年之,目前已在Google工作的[Ken Thompson](http://genius.cat-v.org/ken-thompson/)和[Rob Pike](http://genius.cat-v.org/rob-pike/)(他們在貝爾實驗室時就是同事)、有[Robert Griesemer](http://research.google.com/pubs/author96.html)設計了V8引擎和HotSpot虛擬機)一起合作,了解在21世多核和網絡化環境下越來越複雜的編程問題而發明了Go言。Go語言庫早期代碼庫日誌可以看出它的演化Git用`git log --before={2008-03-03} --reverse`命令看):
在上个世纪70年代贝尔实验室的[Ken Thompson][KenThompson]和[Dennis M. Ritchie][DennisRitchie]合作明了[UNIX](http://doc.cat-v.org/unix/)操作系统,同[Dennis M. Ritchie][DennisRitchie]了解[UNIX](http://doc.cat-v.org/unix/)系统的移植性问题而发明了C言,贝尔实验室的[UNIX](http://doc.cat-v.org/unix/)和C语言两大发明奠定了整个现代IT行最重要的件基(目前的三大桌面操作系统的中[Linux](http://www.linux.org/)和[Mac OS X](http://www.apple.com/cn/osx/)都是源[UINX]()系统,两大移平台的操作系统iOS和Android也都是源[UNIX](http://doc.cat-v.org/unix/)系统。C家族的编程语言占据统治地位达几十年之久)。在[UINX]()和C语言发明40年之,目前已在Google工作的[Ken Thompson](http://genius.cat-v.org/ken-thompson/)和[Rob Pike](http://genius.cat-v.org/rob-pike/)(他们在贝尔实验室时就是同事)、有[Robert Griesemer](http://research.google.com/pubs/author96.html)设计了V8引擎和HotSpot虚拟机)一起合作,了解在21世多核和网络化环境下越来越复杂的编程问题而发明了Go言。Go语言库早期代码库日志可以看出它的演化Git用`git log --before={2008-03-03} --reverse`命令看):
![](./images/go-log04.png)
早期提交日中也可以看出Go言是[Ken Thompson](http://genius.cat-v.org/ken-thompson/)明的B言、[Dennis M. Ritchie](http://genius.cat-v.org/dennis-ritchie/)明的C言逐步演化過來是C言家族的成,因此很多人Go語言稱爲21世的C言。縱觀這幾年來的發展趨勢Go言已經成爲雲計算、雲存儲時代最重要的基礎編程語言。
早期提交日中也可以看出Go言是[Ken Thompson](http://genius.cat-v.org/ken-thompson/)明的B言、[Dennis M. Ritchie](http://genius.cat-v.org/dennis-ritchie/)明的C言逐步演化过来是C言家族的成,因此很多人Go语言称为21世的C言。纵观这几年来的发展趋势Go言已经成为云计算、云存储时代最重要的基础编程语言。
在C語言發明之後約5年的時間之後1978年[Brian W. Kernighan](http://www.cs.princeton.edu/~bwk/)和[Dennis M. Ritchie](http://genius.cat-v.org/dennis-ritchie/)合作編寫出版了C言方面的經典敎材《[The C Programming Language](http://s3-us-west-2.amazonaws.com/belllabs-microsite-dritchie/cbook/index.html)》,該書被譽爲C語言程序員的聖經,作者也被大家切地稱爲[K&R](https://en.wikipedia.org/wiki/K%26R)。同在Go言正式2009年5年之2014年開始寫2015年出版由Go言核心糰隊成員[Alan A. A. Donovan](https://github.com/adonovan)和[K&R](https://en.wikipedia.org/wiki/K%26R)中的[Brian W. Kernighan](http://www.cs.princeton.edu/~bwk/)合作編寫了Go言方面的經典敎材《[The Go Programming Language](http://gopl.io)》。Go言被譽爲21世的C言,如果[K&R](https://en.wikipedia.org/wiki/K%26R)所著的是聖經的舊約,那D&K所著的必將成爲聖經的新約。該書介紹了Go語言幾乎全部特性併且隨着語言的深入層層遞進對每個細節都解得非常致,每一節內容都精不容錯過,是大Gopher的必讀書目。大部分Go言核心糰隊的成員都參與了該書校對工作,因此該書的質量是可以完全放心的。
在C语言发明之后约5年的时间之后1978年[Brian W. Kernighan](http://www.cs.princeton.edu/~bwk/)和[Dennis M. Ritchie](http://genius.cat-v.org/dennis-ritchie/)合作编写出版了C言方面的经典教材《[The C Programming Language](http://s3-us-west-2.amazonaws.com/belllabs-microsite-dritchie/cbook/index.html)》,该书被誉为C语言程序员的圣经,作者也被大家切地称为[K&R](https://en.wikipedia.org/wiki/K%26R)。同在Go言正式2009年5年之2014年开始写2015年出版由Go言核心团队成员[Alan A. A. Donovan](https://github.com/adonovan)和[K&R](https://en.wikipedia.org/wiki/K%26R)中的[Brian W. Kernighan](http://www.cs.princeton.edu/~bwk/)合作编写了Go言方面的经典教材《[The Go Programming Language](http://gopl.io)》。Go言被誉为21世的C言,如果[K&R](https://en.wikipedia.org/wiki/K%26R)所著的是圣经的旧约,那D&K所著的必将成为圣经的新约。该书介绍了Go语言几乎全部特性并且随着语言的深入层层递进对每个细节都解得非常致,每一节内容都精不容错过,是广大Gopher的必读书目。大部分Go言核心团队的成员都参与了该书校对工作,因此该书的质量是可以完全放心的。
時,單憑閲讀和學習其語法結構併不能正地掌握一門編程語言,必須進行足多的編程實踐——親自編寫一些程序研究學習别人的程序。要利用Go言良好的特性使得程序模充分利用Go的標準函數庫以Go言自己的風格來編寫程序。中包含了上百精心挑選的習題,希望大家能先用自己的方式嚐試完成習題,然後再參考官方出的解方案。
时,单凭阅读和学习其语法结构并不能正地掌握一门编程语言,必须进行足多的编程实践——亲自编写一些程序研究学习别人的程序。要利用Go言良好的特性使得程序模充分利用Go的标准函数库以Go言自己的风格来编写程序。中包含了上百精心挑选的习题,希望大家能先用自己的方式尝试完成习题,然后再参考官方出的解方案。
該書英文版約從2015年10月始公開發售,其中日文版本最早參與翻譯和審校(考致部分。在2015年10月們併不知道中文版是否會及時引進、將由哪家出版社引、引進將由何人來翻譯、何能出版,些信息都成了一個祕密。中国的Go言社是全球最大的Go言社,我們從一開始就始終緊跟着Go言的發展腳步。我們應該也完全有能力以中国Go言社的力量同步完成Go語言聖經中文版的翻工作。此同,国有很多Go語言愛好者也在積極關註該書(本人也在第一時間購買了紙質版本,[亞馬遜價格314人民](http://www.amazon.cn/The-Go-Programming-Language-Donovan-Alan-A-A/dp/0134190440/)。充:国內也卽將出版英文版,[格79元](http://product.china-pub.com/4912464))。了Go言的學習和交流,大家定合作免費翻譯該書
该书英文版约从2015年10月始公开发售,其中日文版本最早参与翻译和审校(考致部分。在2015年10月们并不知道中文版是否会及时引进、将由哪家出版社引、引进将由何人来翻译、何能出版,些信息都成了一个秘密。中国的Go言社是全球最大的Go言社,我们从一开始就始终紧跟着Go言的发展脚步。我们应该也完全有能力以中国Go言社的力量同步完成Go语言圣经中文版的翻工作。此同,国有很多Go语言爱好者也在积极关注该书(本人也在第一时间购买了纸质版本,[亚马逊价格314人民](http://www.amazon.cn/The-Go-Programming-Language-Donovan-Alan-A-A/dp/0134190440/)。充:国内也即将出版英文版,[格79元](http://product.china-pub.com/4912464))。了Go言的学习和交流,大家定合作免费翻译该书
工作2015年11月20日前後開到2016年1月底初步完成後歷時約2個月時間(在其它言版本中,全球第一完成翻的,基本做到和原版同步)。其中,[chai2010](https://github.com/chai2010)翻了前言、第2~4章、第10~13章[Xargin](https://github.com/cch123)翻了第1章、第6章、第8~9章[CrazySssst](https://github.com/CrazySssst)翻了第5章[foreversmart](https://github.com/foreversmart)翻了第7章大家共同參與了基本的校工作,有其他一些朋友提供了積極的反饋建議。如果大家有任何問題或建,可以直接到中文版項目頁面提交[Issue](https://github.com/golang-china/gopl-zh/issues),如果發現英文版原文在[](http://www.gopl.io/errata.html)中未提到的任何錯誤,可以直接去[英文版](https://github.com/adonovan/gopl.io/)提交。
工作2015年11月20日前后开到2016年1月底初步完成后历时约2个月时间(在其它言版本中,全球第一完成翻的,基本做到和原版同步)。其中,[chai2010](https://github.com/chai2010)翻了前言、第2~4章、第10~13章[Xargin](https://github.com/cch123)翻了第1章、第6章、第8~9章[CrazySssst](https://github.com/CrazySssst)翻了第5章[foreversmart](https://github.com/foreversmart)翻了第7章大家共同参与了基本的校工作,有其他一些朋友提供了积极的反馈建议。如果大家有任何问题或建,可以直接到中文版项目页面提交[Issue](https://github.com/golang-china/gopl-zh/issues),如果发现英文版原文在[](http://www.gopl.io/errata.html)中未提到的任何错误,可以直接去[英文版](https://github.com/adonovan/gopl.io/)提交。
,希望這本書能夠幫助大家用Go言快樂地編程。
,希望这本书能够帮助大家用Go言快乐地编程。
2016年 1月
2016年 1月
-------
# 前言
*“Go是一個開源的編程語言,它很容易用於構建簡單、可靠和高效的件。”摘自Go言官方http://golang.org *
*“Go是一个开源的编程语言,它很容易用于构建简单、可靠和高效的件。”摘自Go言官方http://golang.org *
Go言由自Google公司的[Robert Griesemer](http://research.google.com/pubs/author96.html)[Rob Pike](http://genius.cat-v.org/rob-pike/)和[Ken Thompson](http://genius.cat-v.org/ken-thompson/)三位大牛2007年9月開始設計和實現,然後於2009年的11月外正式布(譯註:關於Go言的創世紀過程請參考 http://talks.golang.org/2015/how-go-was-made.slide )。言及其配套工具的設計目標是具有表力,高效的編譯和執行效率,有效地編寫高效和健的程序。
Go言由自Google公司的[Robert Griesemer](http://research.google.com/pubs/author96.html)[Rob Pike](http://genius.cat-v.org/rob-pike/)和[Ken Thompson](http://genius.cat-v.org/ken-thompson/)三位大牛2007年9月开始设计和实现,然后于2009年的11月外正式布(译注:关于Go言的创世纪过程请参考 http://talks.golang.org/2015/how-go-was-made.slide )。言及其配套工具的设计目标是具有表力,高效的编译和执行效率,有效地编写高效和健的程序。
Go言有着和C語言類似的法外表和C言一樣是專業程序的必工具,可以用最小的代價獲得最大的果。
但是它不僅僅是一更新的C言。它還從其他言借了很多好的想法,同避免引入度的複雜性。
Go言中和併發編程相的特性是全新的也是有效的,同時對數據抽象和面向對象編程的支持也很活。
Go言同時還集成了自垃圾收集技術用於更好地管理存。
Go言有着和C语言类似的法外表和C言一样是专业程序的必工具,可以用最小的代价获得最大的果。
但是它不仅仅是一更新的C言。它还从其他言借了很多好的想法,同避免引入度的复杂性。
Go言中和并发编程相的特性是全新的也是有效的,同时对数据抽象和面向对象编程的支持也很活。
Go言同时还集成了自垃圾收集技术用于更好地管理存。
Go言尤其適合編寫網絡服務相關基礎設施,同時也適合開發一些工具件和繫統軟件。
但是Go語言確實是一通用的編程語言,它也可以用在圖形圖像驅動編程、移動應用程序開發
機器學習等諸多領域。目前Go言已經成爲受歡迎的作爲無類型的腳本語言的替代者:
Go編寫的程序通常比腳本語言運行的更快也更安全,而且很少會發生意外的類型錯誤
Go言尤其适合编写网络服务相关基础设施,同时也适合开发一些工具件和系统软件。
但是Go语言确实是一通用的编程语言,它也可以用在图形图像驱动编程、移动应用程序开发
机器学习等诸多领域。目前Go言已经成为受欢迎的作为无类型的脚本语言的替代者:
Go编写的程序通常比脚本语言运行的更快也更安全,而且很少会发生意外的类型错误
Go語言還是一個開源的目,可以免費獲編譯器、、配套工具的源代
Go言的貢獻者來自一個活躍的全球社。Go言可以行在[UNIX](http://doc.cat-v.org/unix/)繫統——
比如[Linux](http://www.linux.org/)、[FreeBSD](https://www.freebsd.org/)、[OpenBSD](http://www.openbsd.org/)、[Mac OSX](http://www.apple.com/cn/osx/)——和[Plan9](http://plan9.bell-labs.com/plan9/)繫統和[Microsoft Windows](https://www.microsoft.com/zh-cn/windows/)操作繫統之上。
Go語言編寫的程序無需脩改就可以行在上面這些環境。
Go语言还是一个开源的目,可以免费获编译器、、配套工具的源代
Go言的贡献者来自一个活跃的全球社。Go言可以行在[UNIX](http://doc.cat-v.org/unix/)系统——
比如[Linux](http://www.linux.org/)、[FreeBSD](https://www.freebsd.org/)、[OpenBSD](http://www.openbsd.org/)、[Mac OSX](http://www.apple.com/cn/osx/)——和[Plan9](http://plan9.bell-labs.com/plan9/)系统和[Microsoft Windows](https://www.microsoft.com/zh-cn/windows/)操作系统之上。
Go语言编写的程序无需修改就可以行在上面这些环境。
書是爲了幫助你始以有效的方式使用Go言,充分利用言本身的特性和自帶的標準庫去編寫清晰地道的Go程序。
书是为了帮助你始以有效的方式使用Go言,充分利用言本身的特性和自带的标准库去编写清晰地道的Go程序。
{% include "./links.md" %}