Go程序設(shè)計語言中文版.pdf
http://www.www.srpcoatings.com
2020年11月19日
![]() |
| 第1頁 |
![]() |
| 第10頁 |
![]() |
| 第17頁 |
![]() |
| 第21頁 |
![]() |
| 第34頁 |
![]() |
| 第155頁 |
參見附件(102071KB,302頁)。
Go程序設(shè)計語言中文版
本書由《C程序設(shè)計語言》的作者Kernighan和谷歌公司Go團(tuán)隊主管Alan Donovan聯(lián)袂撰寫,是學(xué)習(xí)Go語言程序設(shè)計的指南,小編今天為大家準(zhǔn)備了Go程序設(shè)計語言中文版,感興趣的小伙伴們就快來開始閱讀吧

內(nèi)容簡介
本書由《C程序設(shè)計語言》的作者Kernighan和谷歌公司Go團(tuán)隊主管Alan Donovan聯(lián)袂撰寫,是學(xué)習(xí)Go語言程序設(shè)計的指南。本書共13章,主要內(nèi)容包括:Go的基礎(chǔ)知識、基本結(jié)構(gòu)、基本數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型、函數(shù)、方法、接口、goroutine、通道、共享變量的并發(fā)性、包、go工具、測試、反射等。
本書適合作為計算機相關(guān)專業(yè)的教材,也可供Go語言愛好者閱讀
相關(guān)內(nèi)容部分預(yù)覽







目錄
The Go Programming Language
出版者的話
譯者序
前言
第1章 入門 1
1.1 hello,world 1
1.2 命令行參數(shù) 3
1.3 找出重復(fù)行 6
1.4 GIF動畫 10
1.5 獲取一個URL 12
1.6 并發(fā)獲取多個URL 13
1.7 一個Web服務(wù)器 14
1.8 其他內(nèi)容 17
第2章 程序結(jié)構(gòu) 20
2.1 名稱 20
2.2 聲明 21
2.3 變量 22
2.3.1 短變量聲明 22
2.3.2 指針 23
2.3.3 new函數(shù) 25
2.3.4 變量的生命周期 26
2.4 賦值 27
2.4.1 多重賦值 27
2.4.2 可賦值性 28
2.5 類型聲明 29
2.6 包和文件 30
2.6.1 導(dǎo)入 31
2.6.2 包初始化 33
2.7 作用域 34
第3章 基本數(shù)據(jù) 38
3.1 整數(shù) 38
3.2 浮點數(shù) 42
3.3 復(fù)數(shù) 45
3.4 布爾值 47
3.5 字符串 47
3.5.1 字符串字面量 49
3.5.2 Unicode 49
3.5.3 UTF-8 50
3.5.4 字符串和字節(jié)slice 53
3.5.5 字符串和數(shù)字的相互轉(zhuǎn)換 56
3.6 常量 56
3.6.1 常量生成器iota 57
3.6.2 無類型常量 59
第4章 復(fù)合數(shù)據(jù)類型 61
4.1 數(shù)組 61
4.2 slice 63
4.2.1 append函數(shù) 66
4.2.2 slice就地修改 69
4.3 map 71
4.4 結(jié)構(gòu)體 76
4.4.1 結(jié)構(gòu)體字面量 78
4.4.2 結(jié)構(gòu)體比較 80
4.4.3 結(jié)構(gòu)體嵌套和匿名成員 80
4.5 JSON 82
4.6 文本和HTML模板 87
第5章 函數(shù) 92
5.1 函數(shù)聲明 92
5.2 遞歸 93
5.3 多返回值 96
5.4 錯誤 98
5.4.1 錯誤處理策略 99
5.4.2 文件結(jié)束標(biāo)識 101
5.5 函數(shù)變量 102
5.6 匿名函數(shù) 104
5.7 變長函數(shù) 110
5.8 延遲函數(shù)調(diào)用 111
5.9 宕機 115
5.10 恢復(fù) 118
第6章 方法 120
6.1 方法聲明 120
6.2 指針接收者的方法 122
6.3 通過結(jié)構(gòu)體內(nèi)嵌組成類型 124
6.4 方法變量與表達(dá)式 127
6.5 示例:位向量 128
6.6 封裝 130
第7章 接口 133
7.1 接口即約定 133
7.2 接口類型 135
7.3 實現(xiàn)接口 136
7.4 使用flag.Value來解析參數(shù) 139
7.5 接口值 141
7.6 使用sort.Interface來排序 144
7.7 http.Handler接口 148
7.8 error接口 152
7.9 示例:表達(dá)式求值器 154
7.10 類型斷言 160
7.11 使用類型斷言來識別錯誤 161
7.12 通過接口類型斷言來查詢特性 162
7.13 類型分支 164
7.14 示例:基于標(biāo)記的XML解析 166
7.15 一些建議 168
第8章 goroutine和通道 170
8.1 goroutine 170
8.2 示例:并發(fā)時鐘服務(wù)器 171
8.3 示例:并發(fā)回聲服務(wù)器 174
8.4 通道 176
8.4.1 無緩沖通道 177
8.4.2 管道 178
8.4.3 單向通道類型 180
8.4.4 緩沖通道 181
8.5 并行循環(huán) 183
8.6 示例:并發(fā)的Web爬蟲 187
8.7 使用select多路復(fù)用 190
8.8 示例:并發(fā)目錄遍歷 192
8.9 取消 195
8.10 示例:聊天服務(wù)器 198
第9章 使用共享變量實現(xiàn)并發(fā) 201
9.1 競態(tài) 201
9.2 互斥鎖:sync.Mutex 205
9.3 讀寫互斥鎖:sync.RWMutex 208
9.4 內(nèi)存同步 208
9.5 延遲初始化:sync.Once 210
9.6 競態(tài)檢測器 212
9.7 示例:并發(fā)非阻塞緩存 212
9.8 goroutine與線程 218
9.8.1 可增長的棧 219
9.8.2 goroutine調(diào)度 219
9.8.3 GOMAXPROCS 219
9.8.4 goroutine沒有標(biāo)識 220
第10章 包和go工具 221
10.1 引言 221
10.2 導(dǎo)入路徑 221
10.3 包的聲明 222
10.4 導(dǎo)入聲明 223
10.5 空導(dǎo)入 223
10.6 包及其命名 225
10.7 go工具 226
10.7.1 工作空間的組織 227
10.7.2 包的 228
10.7.3 包的構(gòu)建 229
10.7.4 包的文檔化 231
10.7.5 內(nèi)部包 232
10.7.6 包的查詢 233
第11章 測試 235
11.1 go test工具 235
11.2 Test函數(shù) 236
11.2.1 隨機測試 239
11.2.2 測試命令 240
11.2.3 白盒測試 242
11.2.4 外部測試包 245
11.2.5 編寫有效測試 246
11.2.6 避免脆弱的測試 247
11.3 覆蓋率 248
11.4 Benchmark函數(shù) 250
11.5 性能剖析 252
11.6 Example函數(shù) 254
第12章 反射 256
12.1 為什么使用反射 256
12.2 reflect.Type和reflect.Value 257
12.3 Display:一個遞歸的值顯示器 259
12.4 示例:編碼S表達(dá)式 263
12.5 使用reflect.Value來設(shè)置值 266
12.6 示例:解碼S表達(dá)式 268
12.7 訪問結(jié)構(gòu)體字段標(biāo)簽 271
12.8 顯示類型的方法 273
12.9 注意事項 274
第13章 低級編程 276
13.1 unsafe.Sizeof、Alignof 和Offsetof 276
13.2 unsafe.Pointer 278
13.3 示例:深度相等 280
13.4 使用cgo調(diào)用C代碼 282
13.5 關(guān)于安全的注意事項 286
前言/序言
The Go Programming Language“Go是一種開源的程序設(shè)計語言,它意在使得人們能夠方便地構(gòu)建簡單、可靠、高效的軟件。”(來自Go官網(wǎng)golang.org)Go在2007年9月形成構(gòu)想,并于2009年11月發(fā)布,其發(fā)明人是Robert Griesemer、Rob Pike和Ken Thompson,這幾位都任職于Google。該語言及其配套工具集使得編譯和執(zhí)行既富有表達(dá)力又高效,而且使得程序員能夠輕松寫出可靠、健壯的程序。
Go和C從表面上看起來相似,而且和C一樣,它也是專業(yè)程序員使用的一種工具,兼有事半功倍之效。但是Go遠(yuǎn)不止是C的一種升級版本;诙喾N其他語言,它取其精華,去其糟粕。
它實現(xiàn)并發(fā)功能的設(shè)施是全新的、高效的,實現(xiàn)數(shù)據(jù)抽象和面向?qū)ο蟮耐緩绞菢O其靈活的。它還實現(xiàn)了自動化的內(nèi)存管理,或稱為垃圾回收。
Go特別適用于構(gòu)建基礎(chǔ)設(shè)施類軟件(如網(wǎng)絡(luò)服務(wù)器),以及程序員使用的工具和系統(tǒng)等。但它的的確確是一種通用語言,而且在諸多領(lǐng)域(如圖像處理、移動應(yīng)用和機器學(xué)習(xí))中都能發(fā)現(xiàn)它的身影。
它在很多場合下用于替換無類型的腳本語言,這是由于它兼顧了表達(dá)力和安全性:Go程序通常比動態(tài)語言程序運行速度要快,由于意料之外的類型錯誤而導(dǎo)致崩潰的情形更是少得多。
Go是個開源項目,所以其編譯器、庫和工具的源代碼是人人皆可取得的。來自全世界的社區(qū)都在積極地向這個項目貢獻(xiàn)代碼。Go的運行環(huán)境包括類UNIX系統(tǒng)——Linux、FreeBSD、OpenBSD和Mac OS X,還有Plan 9和Microsoft Windows。只要在其中一個環(huán)境中寫了一個程序,那么基本上不加修改它就可以運行在其他環(huán)境中。
Go程序設(shè)計語言中文版截圖



您現(xiàn)在查看是摘要介紹頁, 詳見PDF附件(102071KB,302頁)。
計語言中文版_1.jpg)
計語言中文版_2.jpg)
計語言中文版_3.jpg)
計語言中文版_4.jpg)
計語言中文版_5.jpg)
計語言中文版_6.jpg)