Go程序設計語言

Go程序設計語言 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
艾倫A. A. 多諾萬 著,李道兵,高博,龐嚮纔,金鑫鑫,林齊斌 譯



點擊這裡下載
    


想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-11-22

類似圖書 點擊查看全場最低價

圖書介紹

齣版社: 機械工業齣版社
ISBN:9787111558422
版次:1
商品編碼:12187988
品牌:機工齣版
包裝:平裝
叢書名: 計算機科學叢書
開本:16開
齣版時間:2017-05-01
用紙:膠版紙
頁數:286


相關圖書





圖書描述

內容簡介

本書由《C程序設計語言》的作者Kernighan和榖歌公司Go團隊主管AlanDonovan聯袂撰寫,是學習Go語言程序設計指南。本書共13章,主要內容包括:Go的基礎知識、基本結構、基本數據類型、復閤數據類型、函數、方法、接口、goroutine、通道、共享變量的並發性、包、go工具、測試、反射等。本書適閤作為計算機相關專業的教材,也可供Go語言愛好者閱讀。

目錄

The Go Programming Language
齣版者的話
譯者序
前言
第1章 入門 1
1.1 hello,world 1
1.2 命令行參數 3
1.3 找齣重復行 6
1.4 GIF動畫 10
1.5 獲取一個URL 12
1.6 並發獲取多個URL 13
1.7 一個Web服務器 14
1.8 其他內容 17
第2章 程序結構 20
2.1 名稱 20
2.2 聲明 21
2.3 變量 22
2.3.1 短變量聲明 22
2.3.2 指針 23
2.3.3 new函數 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 導入 31
2.6.2 包初始化 33
2.7 作用域 34
第3章 基本數據 38
3.1 整數 38
3.2 浮點數 42
3.3 復數 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 字符串和字節slice 53
3.5.5 字符串和數字的相互轉換 56
3.6 常量 56
3.6.1 常量生成器iota 57
3.6.2 無類型常量 59
第4章 復閤數據類型 61
4.1 數組 61
4.2 slice 63
4.2.1 append函數 66
4.2.2 slice就地修改 69
4.3 map 71
4.4 結構體 76
4.4.1 結構體字麵量 78
4.4.2 結構體比較 80
4.4.3 結構體嵌套和匿名成員 80
4.5 JSON 82
4.6 文本和HTML模闆 87
第5章 函數 92
5.1 函數聲明 92
5.2 遞歸 93
5.3 多返迴值 96
5.4 錯誤 98
5.4.1 錯誤處理策略 99
5.4.2 文件結束標識 101
5.5 函數變量 102
5.6 匿名函數 104
5.7 變長函數 110
5.8 延遲函數調用 111
5.9 宕機 115
5.10 恢復 118
第6章 方法 120
6.1 方法聲明 120
6.2 指針接收者的方法 122
6.3 通過結構體內嵌組成類型 124
6.4 方法變量與錶達式 127
6.5 示例:位嚮量 128
6.6 封裝 130
第7章 接口 133
7.1 接口即約定 133
7.2 接口類型 135
7.3 實現接口 136
7.4 使用flag.Value來解析參數 139
7.5 接口值 141
7.6 使用sort.Interface來排序 144
7.7 http.Handler接口 148
7.8 error接口 152
7.9 示例:錶達式求值器 154
7.10 類型斷言 160
7.11 使用類型斷言來識彆錯誤 161
7.12 通過接口類型斷言來查詢特性 162
7.13 類型分支 164
7.14 示例:基於標記的XML解析 166
7.15 一些建議 168
第8章 goroutine和通道 170
8.1 goroutine 170
8.2 示例:並發時鍾服務器 171
8.3 示例:並發迴聲服務器 174
8.4 通道 176
8.4.1 無緩衝通道 177
8.4.2 管道 178
8.4.3 單嚮通道類型 180
8.4.4 緩衝通道 181
8.5 並行循環 183
8.6 示例:並發的Web爬蟲 187
8.7 使用select多路復用 190
8.8 示例:並發目錄遍曆 192
8.9 取消 195
8.10 示例:聊天服務器 198
第9章 使用共享變量實現並發 201
9.1 競態 201
9.2 互斥鎖:sync.Mutex 205
9.3 讀寫互斥鎖:sync.RWMutex 208
9.4 內存同步 208
9.5 延遲初始化:sync.Once 210
9.6 競態檢測器 212
9.7 示例:並發非阻塞緩存 212
9.8 goroutine與綫程 218
9.8.1 可增長的棧 219
9.8.2 goroutine調度 219
9.8.3 GOMAXPROCS 219
9.8.4 goroutine沒有標識 220
第10章 包和go工具 221
10.1 引言 221
10.2 導入路徑 221
10.3 包的聲明 222
10.4 導入聲明 223
10.5 空導入 223
10.6 包及其命名 225
10.7 go工具 226
10.7.1 工作空間的組織 227
10.7.2 包的下載 228
10.7.3 包的構建 229
10.7.4 包的文檔化 231
10.7.5 內部包 232
10.7.6 包的查詢 233
第11章 測試 235
11.1 go test工具 235
11.2 Test函數 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函數 250
11.5 性能剖析 252
11.6 Example函數 254
第12章 反射 256
12.1 為什麼使用反射 256
12.2 reflect.Type和reflect.Value 257
12.3 Display:一個遞歸的值顯示器 259
12.4 示例:編碼S錶達式 263
12.5 使用reflect.Value來設置值 266
12.6 示例:解碼S錶達式 268
12.7 訪問結構體字段標簽 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調用C代碼 282
13.5 關於安全的注意事項 286

前言/序言

The Go Programming Language“Go是一種開源的程序設計語言,它意在使得人們能夠方便地構建簡單、可靠、高效的軟件。”(來自Go官網golang.org)Go在2007年9月形成構想,並於2009年11月發布,其發明人是Robert Griesemer、Rob Pike和Ken Thompson,這幾位都任職於Google。該語言及其配套工具集使得編譯和執行既富有錶達力又高效,而且使得程序員能夠輕鬆寫齣可靠、健壯的程序。
Go和C從錶麵上看起來相似,而且和C一樣,它也是專業程序員使用的一種工具,兼有事半功倍之效。但是Go遠不止是C的一種升級版本。基於多種其他語言,它取其精華,去其糟粕。它實現並發功能的設施是全新的、高效的,實現數據抽象和麵嚮對象的途徑是極其靈活的。它還實現瞭自動化的內存管理,或稱為垃圾迴收。
Go特彆適用於構建基礎設施類軟件(如網絡服務器),以及程序員使用的工具和係統等。但它的的確確是一種通用語言,而且在諸多領域(如圖像處理、移動應用和機器學習)中都能發現它的身影。它在很多場閤下用於替換無類型的腳本語言,這是由於它兼顧瞭錶達力和安全性:Go程序通常比動態語言程序運行速度要快,由於意料之外的類型錯誤而導緻崩潰的情形更是少得多。
Go是個開源項目,所以其編譯器、庫和工具的源代碼是人人皆可免費取得的。來自全世界的社區都在積極地嚮這個項目貢獻代碼。Go的運行環境包括類UNIX係統——Linux、FreeBSD、OpenBSD和Mac OS X,還有Plan 9和Microsoft Windows。隻要在其中一個環境中寫瞭一個程序,那麼基本上不加修改它就可以運行在其他環境中。
本書旨在幫助讀者立刻開始使用Go,以及熟練掌握這門語言,並充分地利用Go的語言特性和標準庫來撰寫清晰的、符閤習慣用法的、高效的程序。
Go的起源和生物學物種一樣,成功的語言會繁衍後代,這些後代語言會從它們的祖先那裏汲取各種優點;有時候,語言間的“混血”會産生異常強大的力量;在一些罕見情況下,某個重大的語言特性也可能憑空齣現而並無先例。通過考察語言間的影響,我們可以學得不少知識,比如語言為什麼會變成這個樣子,以及它適閤用於哪些環境,等等。
下圖展示瞭更早齣現的程序設計語言對Go産生的最重要影響。
Go有時會稱為“類C語言”或“21世紀的C”。從C中,Go繼承瞭錶達式語法、控製流語句、基本數據類型、按值調用的形參傳遞和指針,但比這些更重要的是,繼承瞭C所強調的要點:程序要編譯成高效的機器碼,並自然地與所處的操作係統提供的抽象機製相配閤。
可是,Go的傢譜中還有其他祖先。産生主要影響的是由Niklaus Wirth設計的、以Pascal為發端的一個語言支流。Modula-2啓發瞭包概念。Oberon消除瞭模塊接口文件和模塊實現文件之間的差異。Oberon-2影響瞭包、導入和聲明的語法,並提供瞭方法聲明的語法。
Go的另一支世係祖先——它使得Go相對於當下的程序設計語言顯得卓然不群,是在貝爾實驗室開發的一係列名不見經傳的研究用語言。這些語言都受到瞭通信順序進程(Communicating Sequential Process,CSP)的啓發,CSP由Tony Hoare於1978年在發錶的關於並發性基礎的開創性論文中提齣。在CSP中,程序就是一組無共享狀態進程的並行組閤,進程間的通信和同步采用通道完成。不過,Hoare提齣的CSP是一種形式語言,僅用於描述並發性的基本概念,並不是一種用來撰寫可執行程序的程序設計語言。
Rob Pike等人開始動手做一些實驗,嘗試把CSP實現為真正的語言。第一種這樣的語言稱為Squeak(“和鼠類溝通的語言”),它是一種用於處理鼠標和鍵盤事件的語言,其中具有靜態創建的通道。緊接著它的是Newsqueak,它具有類C的語句和錶達式語法,以及類Pascal的類型記法。它是一種純粹的函數式語言,具有垃圾迴收功能,同樣也以管理鍵盤、鼠標和窗口事件為目標。通道變成瞭“一等”值(first-class value),它可以動態創建並用變量存儲。
Plan 9操作係統將這些思想都納入一種稱為Alef的語言中。Alef嘗試將Newsqueak改造成一種可用的係統級程序設計語言,但垃圾迴收功能的缺失使得它在處理並發性時捉襟見肘。
Go中的其他結構也會不時顯示齣某些並非來自祖先的基因。例如,iota多多少少有點APL的影子,而嵌套函數的詞法作用域則來自Scheme(以及由之而來的大部分語言)。在Go語言中,也可以發現全新的變異。Go中新穎的slice不僅為動態數組提供瞭高效的隨機訪問功能,還允許舊式鏈錶的復雜共享機製。另外,defer語句也是Go中新引入的。
Go項目所有的程序設計語言都反映瞭其發明者的程序設計哲理,其中相當大的一部分是對於此前語言已知缺點的應對措施。Go這個項目也誕生於挫敗感,這種挫敗感來源於Google的若乾復雜性激增的軟件係統。(而且這個問題絕非Google所獨有的。)“復雜性是以乘積方式增長的。”Rob Pike如是說。為瞭修復某個問題,一點點地將係統的某個部分變得更加復雜,這不可避免地也給其他部分增加瞭復雜性。在不斷要求增加係統功能、選項和配置,以及快速發布的壓力之下,簡單性往往被忽視瞭(盡管長期來看,簡單性纔是好軟件的不二法門)。


Go程序設計語言 下載 mobi epub pdf txt 電子書 格式

Go程序設計語言 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

Go程序設計語言 下載 mobi pdf epub txt 電子書 格式 2024

Go程序設計語言 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

打工皇帝剛迴傢發貨哈工大蛤蛤蛤

評分

2018go語言必學,搞搞docker還不是很舒服?一口氣25本書,還是很爽的,重要的是學到東西,豆瓣上評價不錯,不說瞭拿發票去報銷瞭。

評分

golang的官方社區其實case by case很棒,不過就是全部在綫看略纍。

評分

快遞速度?早上就送到瞭。

評分

我的不幸,恰恰在於我缺乏拒絕的能力。我害怕一旦拒絕彆人,便會在彼此心裏留下永遠無法愈閤的裂痕。——太宰治《人間失格》

評分

好好學習天天嚮上,看完在買彆的

評分

好評,書本沒破損,內容不錯!

評分

還可以???

評分

還沒時間看,應該可以的!發貨速度快

類似圖書 點擊查看全場最低價

Go程序設計語言 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.qciss.net All Rights Reserved. 圖書大百科 版權所有