3dwoo大學簡體電腦書店
精通Go語言(第2版)
( 簡體 字)
作者:[美] 米哈里斯·托卡洛斯 著 類別:1. -> 程式設計 -> Go語言
譯者:劉曉雪 譯
出版社:清華大學出版社精通Go語言(第2版) 3dWoo書號: 55463
詢問書籍請說出此書號!
有庫存
NT售價: 795
出版日:11/1/2021
頁數:717
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302594857 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1部分
第1章Go語言和操作系統 3
  1.1Go語言的歷史 3
  1.2Go語言的未來 4
  1.3Go語言的優點 4
  1.3.1Go語言是否完美 5
  1.3.2預處理器 5
  1.3.3godoc實用程序 6
  1.4編譯Go代碼 7
  1.5執行Go代碼 8
  1.6兩條Go語言規則 8
  1.7下載和使用外部的Go包 10
  1.8UNIXstdin、stdout和stderr 12
  1.9輸出結果 12
  1.10使用標準輸出 14
  1.11獲取用戶輸入 16
  1.11.1:=和= 16
  1.11.2從標準輸入中讀取 17
  1.11.3與命令行參數協同工作 18
  1.12錯誤的輸出結果 20
  1.13寫入日志文件中 22
  1.13.1日志級別 22
  1.13.2日志工具 23
  1.13.3日志服務器 23
  1.13.4將信息發送至日志文件的Go程序 24
  1.13.5log.Fatal()函數 26
  1.13.6log.Panic()函數 27
  1.13.7寫入自定義日志文件中 29
  1.13.8在日志項中輸出行號 31
  1.14Go語言中的錯誤處理機制 32
  1.14.1錯誤數據類型 33
  1.14.2錯誤處理機制 35
  1.15使用Docker 37
  1.16練習和鏈接 42
  1.17本章小結 43
第2章理解Go語言的內部機制 45
  2.1Go編譯器 45
  2.2垃圾收集 47
  2.2.1三色算法 49
  2.2.2Go垃圾收集器的更多內容 52
  2.2.3映射、切片和Go垃圾收集器 53
  2.2.4不安全的代碼 57
  2.2.5unsafe包 58
  2.2.6unsafe包的另一個示例 59
  2.3從Go程序中調用C代碼 60
  2.3.1利用同一文件從Go程序中調用C代碼 60
  2.3.2利用單獨的文件從Go程序中調用C代碼 61
  2.3.3C代碼 61
  2.3.4Go代碼 62
  2.3.5混合Go和C代碼 63
  2.4從C代碼中調用Go函數 64
  2.4.1Go包 65
  2.4.2C代碼 66
  2.5defer關鍵字 67
  2.6panic()和recover()函數 71
  2.7兩個方便的UNIX實用程序 74
  2.7.1strace工具 74
  2.7.2dtrace工具 75
  2.8Go環境 76
  2.9goenv命令 78
  2.10Go匯編器 79
  2.11節點樹 80
  2.12gobuild的更多內容 86
  2.13生成WebAssembly代碼 88
  2.13.1WebAssembly簡介 88
  2.13.2WebAssembly的重要性 89
  2.13.3Go和WebAssembly 89
  2.13.4示例 89
  2.13.5使用生成后的WebAssembly代碼 90
  2.14一般的Go編碼建議 92
  2.15練習和鏈接 93
  2.16本章小結 93
第3章處理Go語言中的基本數據類型 95
  3.1數字數據類型 95
  3.1.1整數 96
  3.1.2浮點數 96
  3.1.3復數 96
  3.1.4Go2中的數字字面值 98
  3.2Go語言中的循環 99
  3.2.1for循環 99
  3.2.2while循環 99
  3.2.3range關鍵字 100
  3.2.4多種Go循環示例 100
  3.3Go語言中的數組 102
  3.3.1多維數組 102
  3.3.2數組的缺點 105
  3.4Go語言中的切片 105
  3.4.1在切片上執行基本的操作 106
  3.4.2自動擴展 108
  3.4.3字節切片 109
  3.4.4copy()函數 109
  3.4.5多維切片 112
  3.4.6切片的另一個示例 112
  3.4.7利用sort.Slice()函數對切片進行排序 114
  3.4.8向切片中附加一個數組 116
  3.5Go語言中的映射 117
  3.5.1存儲至nil映射中 119
  3.5.2何時應使用映射 120
  3.6Go語言中的常量 120
  3.7Go語言中的指針 124
  3.8時間和日期 127
  3.8.1與時間協同工作 128
  3.8.2解析時間 129
  3.8.3與日期協同工作 130
  3.8.4解析日期 130
  3.8.5修改日期和時間格式 132
  3.9度量Go語言中的命令和函數的執行時間 133
  3.10度量Go語言垃圾收集器的操作 135
  3.11Web鏈接和練習 136
  3.12本章小結 136
第4章組合類型的使用 137
  4.1關于組合類型 137
  4.2Go語言中的結構 137
  4.2.1指向結構的指針 140
  4.2.2Go語言中的new關鍵字 142
  4.3Go語言中的元組 142
  4.4Go語言中的正則表達式和模式匹配 144
  4.4.1理論知識簡介 144
  4.4.2簡單的示例 144
  4.4.3高級示例 147
  4.4.4匹配IPv4地址 150
  4.5Go語言中的字符串 154
  4.5.1rune 156
  4.5.2unicode包 158
  4.5.3strings包 159
  4.6switch語句 163
  4.7計算高精度Pi值 167
  4.8生成Go語言中的鍵-值存儲 170
  4.9Go語言和JSON格式 175
  4.9.1讀取JSON數據 175
  4.9.2保存JSON數據 177
  4.9.3使用Marshal()和Unmarshal()函數 179
  4.9.4解析JSON數據 181
  4.9.5Go語言和XML 183
  4.9.6讀取XML文件 186
  4.9.7自定義XML格式 188
  4.10Go語言和YAML格式 189
  4.11附加資源 190
  4.12練習和Web鏈接 190
  4.13本章小結 191
第2部分
第5章利用數據結構改進Go代碼 195
  5.1圖和節點 195
  5.2度量算法的復雜度 196
  5.3二叉樹 196
  5.3.1實現Go語言中的二叉樹 197
  5.3.2二叉樹的優點 199
  5.4Go語言中的哈希表 200
  5.4.1實現Go語言中的哈希表 201
  5.4.2實現查找功能 204
  5.4.3哈希表的優點 204
  5.5Go語言中的鏈表 205
  5.5.1實現Go語言中的鏈表 206
  5.5.2鏈表的優點 209
  5.6Go語言中的雙向鏈表 210
  5.6.1實現Go語言中的雙向鏈表 211
  5.6.2雙向鏈表的優點 214
  5.7Go語言中的隊列 214
  5.8Go語言中的棧 218
  5.9container包 221
  5.9.1使用container/heap 221
  5.9.2使用container/list 224
  5.9.3使用container/ring 226
  5.10在Go語言中生成隨機數 227
  5.11生成安全的隨機數 233
  5.12執行矩陣計算 234
  5.12.1矩陣的加法和減法 235
  5.12.2矩陣乘法 237
  5.12.3矩陣的除法 241
  5.12.4計算數組維度 246
  5.13求解數獨謎題 247
  5.14附加資源 251
  5.15本章練習 251
  5.16本章小結 252
第6章Go包和函數 253
  6.1Go包 253
  6.2Go語言中的函數 254
  6.2.1匿名函數 254
  6.2.2返回多個值的函數 255
  6.2.3命名函數的返回值 257
  6.2.4包含指針參數的函數 258
  6.2.5返回指針的函數 259
  6.2.6返回其他函數的函數 260
  6.2.7接收其他函數作為參數的函數 262
  6.2.8可變參數函數 263
  6.3開發自己的Go包 264
  6.3.1編譯Go包 266
  6.3.2私有變量和函數 267
  6.3.3init()函數 267
  6.4Go模塊 269
  6.4.1創建并使用Go模塊 270
  6.4.2使用同一Go模塊的不同版本 278
  6.4.3Go模塊在Go語言中的存儲位置 279
  6.4.4gomodvendor命令 280
  6.5創建較好的Go包 281
  6.6syscall包 282
  6.7go/scanner、go/parser和go/token包 286
  6.7.1go/ast包 287
  6.7.2go/scanner包 287
  6.7.3go/parser包 289
  6.7.4操作示例 292
  6.7.5利用給定的字符串長度查找變量名 293
  6.8文本和HTML模板 298
  6.8.1生成文本輸出 299
  6.8.2構建HTML輸出結果 301
  6.9附加資源 308
  6.10練習 309
  6.11本章小結 309
第7章反射和接口 311
  7.1類型方法 311
  7.2Go接口 313
  7.3編寫自己的接口 316
  7.3.1使用Go接口 316
  7.3.2使用switch語句和數據類型 318
  7.4反射 320
  7.4.1簡單的反射示例 321
  7.4.2高級反射示例 323
  7.4.3反射的缺點 326
  7.4.4reflectwalk庫 326
  7.5Go語言中的面向對象編程 329
  7.6Git和GitHub簡介 332
  7.6.1使用Git 332
  7.6.2gitstatus命令 333
  7.6.3gitpull命令 333
  7.6.4gitcommit命令 333
  7.6.5gitpush命令 334
  7.6.6與分支協同工作 334
  7.6.7與文件協同工作 335
  7.6.8.gitignore文件 336
  7.6.9使用gitdiff命令 336
  7.6.10與標簽協同工作 337
  7.6.11gitcherry-pick命令 338
  7.7使用Delve進行調試 339
  7.8附加資源 343
  7.9本章練習 344
  7.10本章小結 344
第3部分
第8章UNIX系統編程 347
  8.1UNIX進程 348
  8.2flag包 348
  8.3viper包 353
  8.3.1簡單的viper示例 353
  8.3.2從flag到viper包 354
  8.3.3讀取JSON配置文件 356
  8.3.4讀取YAML配置文件 358
  8.4cobra包 360
  8.4.1簡單的cobra示例 361
  8.4.2創建命令行別名 366
  8.5io.Reader和io.Writer接口 369
  8.6bufio包 369
  8.7讀取文本文件 370
  8.7.1逐行讀取文本文件 370
  8.7.2逐個單詞讀取文本文件 372
  8.7.3逐個字符讀取文本文件 374
  8.7.4從/dev/random中讀取 376
  8.8讀取特定的數據量 377
  8.9二進制格式的優點 379
  8.10讀取CSV文件 380
  8.11寫入文件中 383
  8.12加載和保存磁盤上的數據 386
  8.13再訪strings包 389
  8.14bytes包 391
  8.15文件權限 392
  8.16處理UNIX信號 394
  8.16.1處理兩個信號 394
  8.16.2處理全部信號 397
  8.17Go語言中的UNIX管道編程 399
  8.18syscall.PtraceRegs 401
  8.19跟蹤系統調用 403
  8.20用戶ID和組ID 408
  8.21DockerAPI和Go語言 409
  8.22附加資源 412
  8.23本章練習 413
  8.24本章小結 413
第9章Go語言中的并發編程—協程、通道和管道 415
  9.1進程、線程和協程 415
  9.1.1Go調度器 416
  9.1.2并發和并行 416
  9.2協程 417
  9.2.1創建一個協程 417
  9.2.2創建多個協程 418
  9.3等待協程結束 420
  9.4通道 424
  9.4.1寫入通道 424
  9.4.2從通道中讀取數據 426
  9.4.3從關閉的通道中讀取 427
  9.4.4作為函數參數的通道 428
  9.5管道 429
  9.6競態條件 433
  9.7Go語言和Rust語言并發模型的比較 435
  9.8Go語言和Erlang語言并發模型的比較 435
  9.9附加資源 436
  9.10本章練習 436
  9.11本章小結 436
第10章Go語言的并發性—高級話題 437
  10.1再訪Go調度器 437
  10.2select關鍵字 440
  10.3協程超時 443
  10.3.1協程超時第1部分 443
  10.3.2協程超時第2部分 445
  10.4再訪Go通道 447
  10.4.1信號通道 448
  10.4.2緩沖通道 448
  10.4.3nil通道 450
  10.4.4通道的通道 452
  10.4.5指定協程的執行順序 454
  10.4.6如何使用協程 457
  10.5共享內存和共享變量 458
  10.5.1sync.Mutex類型 458
  10.5.2忘記解鎖互斥體 461
  10.5.3sync.RWMutex類型 463
  10.5.4atomic包 466
  10.5.5基于協程的共享內存 468
  10.6重訪Go語句 470
  10.7緩存竟態條件 473
  10.8context包 479
  10.8.1context包的高級示例 483
  10.8.2context包的另一個示例 488
  10.8.3worker池 490
  10.9附加資源 494
  10.10本章練習 494
  10.11本章小結 495
第11章代碼測試、優化和分析 497
  11.1優化 498
  11.2優化Go代碼 499
  11.3分析Go代碼 499
  11.3.1net/http/pprof標準包 499
  11.3.2簡單的分析示例 500
  11.3.3方便的外部包 508
  11.3.4Go分析器的Web界面 510
  11.4gotooltrace實用程序 514
  11.5測試Go代碼 518
  11.5.1針對現有Go代碼編寫測試 519
  11.5.2測試代碼的覆蓋率 523
  11.6利用數據庫后端測試HTTP服務器 526
  11.6.1testing/quick包 533
  11.6.2測試時間過長或無法結束 537
  11.7Go代碼基準測試 540
  11.8簡單的基準測試示例 540
  11.9緩沖寫入的基準測試 546
  11.10查找程序中不可訪問的Go代碼 551
  11.11交叉編譯 552
  11.12生成示例函數 554
  11.13從Go代碼到機器代碼 556
  11.14生成Go代碼文檔 559
  11.15使用Docker鏡像 564
  11.16附加資源 566
  11.17本章練習 567
  11.18本章小結 568
第12章網絡編程基礎知識 569
  12.1net/http、net和http.RoundTripper 569
  12.1.1http.Response結構 570
  12.1.2http.Request結構 570
  12.1.3http.Transport結構 571
  12.2TCP/IP 572
  12.3IPv4和IPv6 573
  12.4nc(1)命令行實用程序 573
  12.5讀取網絡接口的配置 574
  12.6在Go語言中執行DNS查找 578
  12.6.1獲取域的NS記錄 581
  12.6.2獲取域的MX記錄 582
  12.7在Go語言中創建Web服務器 583
  12.7.1使用atomic包 587
  12.7.2分析一個HTTP服務器 589
  12.7.3創建一個站點 594
  12.8HTTP跟蹤機制 604
  12.9在Go語言中創建一個Web客戶端 610
  12.10HTTP連接超時 615
  12.10.1SetDeadline()函數 617
  12.10.2在服務器端設置超時時間 618
  12.10.3其他超時方式 620
  12.11Wireshark和tshark工具 621
  12.12gRPC和Go 622
  12.12.1定義接口定義文件 622
  12.12.2gRPC客戶端 624
  12.12.3gRPC服務器 626
  12.13附加資源 628
  12.14本章練習 629
  12.15本章練習 630
第13章網絡編程—構建自己的服務器和客戶端 631
  13.1與HTTPS流量協同工作 631
  13.1.1生成證書 631
  13.1.2HTTPS客戶端 632
  13.1.3簡單的HTTPS服務器 634
  13.1.4開發TLS服務器和客戶端 636
  13.2net標準包 639
  13.3開發一個TCP客戶端 640
  13.4開發一個TCP服務器 643
  13.5開發一個UDP客戶端 648
  13.6部署UDP服務器 650
  13.7并發TCP服務器 653
  13.8創建TCP/IP服務器的Docker鏡像 663
  13.9遠程過程調用(RPC) 665
  13.9.1RPC客戶端 666
  13.9.2RPC服務器 667
  13.10底層網絡編程 669
  13.11本章資源 677
  13.12本章練習 677
  13.13本章小結 678
第14章Go語言中的機器學習 679
  14.1計算簡單的統計屬性 679
  14.2回歸 683
  14.2.1線性回歸 683
  14.2.2實現線性回歸 684
  14.2.3繪制數據 686
  14.3分類 690
  14.4聚類 694
  14.5異常檢測 697
  14.6神經網絡 700
  14.7離群值分析 702
  14.8與TensorFlow協同工作 705
  14.9與ApacheKafka協同工作 710
  14.10附加資源 715
  14.11本章練習 716
  14.12本章小結 716
  14.13接下來的工作 716
  
·X·
精通Go語言(第2版)
  
·XI·
《精通Go語言(第2版)》詳細闡述了與Go語言相關的基本解決方案,主要包括Go語言和操作系統,理解Go語言的內部機制,處理Go語言中的基本數據類型,組合類型的使用,利用數據結構改進Go代碼,Go包和函數,反射和接口,UNIX系統編程,Go語言中的并發編程—協程、通道和管道,Go語言的并發性—高級話題,代碼測試、優化和分析,網絡編程基礎知識,網絡編程—構建自己的服務器和客戶端,Go語言中的機器學習等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。
本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。
本書旨在幫助讀者成為一名更加優秀的Go語言開發者。
  本書涵蓋了許多令人激動的主題,包括與Go語言機器學習相關的新增章節,以及與Viper和Cobra Go包、gRPC、Docker鏡像協同操作、YAML文件協同操作、go/scanner和go/token包協同操作、從Go語言中生成WebAssembly代碼相關的信息和示例。
適用讀者
  本書適用于希望進一步提升編程水平的中級Go程序員和Go語言編程愛好者;此外,本書也適用于具有一定編程經驗的使用其他語言的開發人員,他們希望了解Go語言,但并不打算從for循環開始從頭學起。
本書內容
  第1章首先將介紹Go語言的歷史和優點,隨后將描述godoc應用程序并解釋如何編譯和執行Go程序。接下來,本章將考查如何顯示輸出結果、獲取用戶輸入內容、與程序的命令行參數協調工作、使用日志文件。最后,本章還將討論錯誤處理機制,該機制在Go語言中飾演了重要的角色。
  第2章首先將討論Go垃圾收集及其操作方式,隨后將介紹不安全的代碼、unsafe包、如何在Go語言程序中調用C語言代碼、如何從C語言程序中調用Go代碼。隨后,本章將依次展示defer關鍵字的用法、strace(1)和dtrace(1)實用程序。在本章其余部分中,我們還將學習如何獲取與Go環境相關的信息、Go匯編器的使用以及如何從Go語言中生成WebAssembly。
  第3章將討論Go語言提供的數據類型,其中包括數組、切片、映射、Go指針、常量、循環,以及與日期和時間的協同工作方式。讀者不應錯過本章中的精彩內容。
  第4章在介紹元組、字符串、rune、字節切片和字符串字面值之前首先將考查Go語言結構和關鍵字struct。本章其余內容則將闡述正則表達式和模式匹配、switch語句、strings包、math/big包、Go語言中的鍵-值開發、XML協同工作方式以及JSON文件。
  第5章將討論當Go語言提供的結構不適用于特定問題時,如何開發自己的數據結構,包括二叉樹、哈希表、鏈表、隊列、棧及其優點。除此之外,本章還將講解container標準Go語言包中結構的應用,以及如何使用Go語言破解Sudoku謎語以及生成隨機數。
  第6章將討論包和函數,包括init()函數、syscall標準Go包、text/template包和html/template包。另外,本章還將進一步展示go/scanner、go/parser和go/token高級包的使用。不難發現,本章將極大地提升Go語言開發人員的編程技能。
  第7章將討論Go語言中3個高級概念,即反射、接口和類型方法。除此之外,本章還將介紹Go語言的面向對象功能,以及如何利用Delve調試Go程序。
  第8章將討論Go語言中的系統編程,其中涉及與命令行參數協同工作的flag包、處理UNIX信號、文件輸入和輸出、bytes包、io.Reader和io.Writer接口,以及Viper和Cobra Go包的使用。
  第9章將討論協程、通道和管道,這也是實現并發的Go語言方式。此外,本章還將學習進程、線程和協程之間的差別、sync包和Go調度器的操作方式。
  第10章將在第9章的基礎上繼續探討協程和通道。讀者將學習更多關于Go調度器、共享內存、互斥體、sync.Mutex類型和sync.RWMutex類型方面的知識。本章最后一部分內容將闡述工作池,以及如何監測競爭條件。
  第11章將介紹代碼測試機制、代碼優化和代碼分析、交叉編譯、生成文檔Go代碼基準測試、創建示例函數、查找不可訪問的Go代碼。
  第12章將介紹net/http包,以及如何在Go語言中開發Web客戶端和Web服務,此外還包括http.Response、http.Request、http.Transport結構的使用和http.NewServeMux類型。讀者甚至還將學習如何在Go語言中開發一個完整的站點。進一步講,本章將學習如何讀取網絡接口的配置信息,以及如何在Go語言中執行DNS查找。除此之外,我們還將學習如何在Go語言的基礎上使用gRPC。
  第13章將討論如何與HTTPS流量協同工作、利用net包提供的各項功能在Go語言中創建UDP和TCP服務器和客戶端。本章其他主題還包括創建RPC客戶端和服務器、在Go語言中開發TCP并發服務器和讀取原始網絡包。
  第14章將介紹Go語言中的機器學習,包括分類、聚類、異常檢測、異常值、神經網絡、TensorFlow,以及Go語言中與Apache Kafka的協同工作方式。
  本書可被劃分為3個邏輯部分。其中,第1部分內容深入考查某些重要的Go語言概念,包括用戶輸入和輸出、下載外部Go語言包、編譯Go代碼、從Go語言程序中調用C代碼、從Go語言中創建WebAssembly、使用Go語言的基本類型和Go語言的復合類型。
  第2部分內容包括第5~7章,主要處理包和模塊中的Go語言代碼組織問題、Go語言的項目設計以及Go語言中的某些高級特性。
  第3部分內容包括第8~14章,主要處理Go語言中的一些可操作問題。其中,第8~11章將討論Go語言中的系統編程、Go語言中的并發編程、代碼測試、優化和分析;第12~14章將介紹網絡編程和Go語言中的機器學習。
  本書內容涉及Go和WebAssembly、基于Go語言的Docker、利用Viper和Cobra包創建專業的命令行工具、解析JSON和YAML記錄、矩陣計算、與Sudoku協調工作、go/scanner和go/token包、處理git(1)和GitHub、atomic包、gRPC和Go語言以及HTTPS。
  本書示例程序短小而完整,旨在闡述相關概念。這包含兩方面的優點:首先,讀者在學習某種技術時無須查看冗長的代碼列表;其次,當創建自己的應用程序和實用程序時,讀者可使用這些代碼作為起始點。
?提示:
  我們已經了解到容器和Docker的重要性,因而本書中包括的各種Go執行文件示例均在Docker鏡像中加以使用—Docker鏡像可方便地部署服務器應用程序。
技術需求
  當運行本書示例程序時,我們需要一臺基于UNIX環境的計算機,同時安裝較新版本的Go語言,其中包括運行Mac OS X、macOS或Linux的機器。另外,本書提供的大多數代碼也將在Microsoft Windows機器上運行。
  為了從本書中獲得更多開發技能,建議讀者盡可能地在自己的程序中實現每章中的知識點,并查看相應的操作結果。除此之外,讀者還應完成每章結尾的練習題,或者找出自己的編程問題。
下載示例代碼文件
  讀者可訪問并通過個人賬戶下載本書的示例代碼文件。無論讀者在何處購買了本書,均可訪問,經注冊后我們會直接將相關文件通過電子郵件的方式發送給您。
  下載代碼文件的具體操作步驟如下。
  (1)訪問并注冊。
  (2)選擇SUPPORT選項卡。
  (3)單擊Code Downloads & Errata。
  (4)在Search搜索框中輸入書名,然后按照屏幕上的說明操作。
  當文件下載完畢后,可利用下列軟件的最新版本解壓或析取文件夾中的內容。
* WinRAR/7-Zip(Windows環境)。
* Zipeg/iZip/UnRarX(Mac環境)。
* 7-Zip/PeaZip(Linux環境)。
  另外,本書的代碼包也托管于GitHub上,對應網址為。若代碼被更新,現有的GitHub庫也會保持同步更新。
  讀者還可訪問并從對應分類中查看其他代碼包和視頻內容。
下載彩色圖像
  我們還提供了與本書相關的PDF文件,其中包含書中所用截圖/圖表的彩色圖像,讀者可訪問進行下載。
  圖標表示提示信息和操作技巧。
讀者反饋和客戶支持
  歡迎讀者對本書提出建議或意見并予以反饋。
  對此,讀者可發送郵件,并以書名作為郵件標題。
勘誤表
  盡管我們希望做到盡善盡美,但錯誤依然在所難免。如果讀者發現謬誤之處,無論是文字錯誤抑或是代碼錯誤,還望不吝賜教。對此,讀者可訪問,選取對應書籍,單擊Errata Submission超鏈接,輸入并提交相關問題的詳細內容。
版權須知
  一直以來,互聯網上的版權問題從未間斷,Packt出版社對此類問題異常重視。若讀者在互聯網上發現本書任意形式的副本,請告知我們網絡地址或網站名稱,我們將對此予以處理。關于盜版問題,讀者可發送郵件。
  若讀者針對某項技術具有專家級的見解,抑或計劃撰寫書籍或完善某部著作的出版工作,則可訪問。
問題解答
  若讀者對本書有任何疑問,均可發送郵件,我們將竭誠為您服務。

·IV·
精通Go語言(第2版)
  
·VII·
前 言
pagetop