-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
打開Go語言之門 入門、實戰與進階 版權信息
- ISBN:9787111712459
- 條形碼:9787111712459 ; 978-7-111-71245-9
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
打開Go語言之門 入門、實戰與進階 本書特色
資深Go專家從基礎知識、底層原理、工程實踐3個維度帶你快速掌握Go語言編程方法與技巧
打開Go語言之門 入門、實戰與進階 內容簡介
通過不斷思考和整理,作者編寫了這本更具系統性也更通俗易懂的Go語言入門和進階書籍,以幫助學習者少走彎路,比其他人更快一步提升職業競爭力。
本書共包含5個部分。
第1部分:快速入門Go語言。作者挑選了變量、常量、基礎數據類型、函數和方法、結構體和接口等知識點進行介紹。這部分內容相對簡潔,但已經足夠讓你掌握Go的基本程序結構了。
第2部分:Go語言的高效并發。這部分主要介紹goroutine、channel、同步原語等知識,讓你對Go語言層面的并發支持有更深入的理解,并且可以編寫自己的Go語言并發程序。這個部分*后一章專門介紹常用的并發模式,可以拿來即用,以更好地控制并發。
第3部分:深入理解Go語言。這部分講解Go語言底層原理和高級功能,比如slice的底層是怎樣的、為什么這么高效等。這部分內容也是作者特意設計的,跟著作者一起研究底層原理,可避免初學者不求甚解的通病。總之,只有理解了底層原理,你才能更靈活地編寫程序并高效地應對問題。
第4部分:Go語言工程管理。學習一門語言,不僅要掌握它本身的知識,還要掌握模塊管理、性能優化等周邊技能,因為這些技能可以幫助你更好地進行多人協作,提高開發效率,寫出更高質量的代碼。你可以在這部分學到如何測試Go語言代碼以提高代碼質量、如何做好性能優化、如何使用第三方庫來提高自己項目的開發效率等。
第5部分:Go語言泛型。這是Go語言在1.18版本中新增的特性,也是大家期待已久的特性。在這一部分作者會帶你學習Go語言泛型的使用,以及如何使用泛型來提高效率和簡化代碼。
打開Go語言之門 入門、實戰與進階 目錄
前言 學習Go語言,抓住未來的機遇
**部分 快速入門Go語言
第1章 基礎入門:Hello, Go語言 2
1.1 Hello,World 2
1.2 程序結構分析 3
1.3 搭建Go語言開發環境 4
1.3.1 在Windows下安裝 4
1.3.2 在Linux下安裝 4
1.3.3 在macOS下安裝 4
1.3.4 安裝測試 4
1.3.5 環境變量設置 5
1.4 項目結構 5
1.5 編譯發布 6
1.6 跨平臺編譯 6
1.7 Go編輯器推薦 7
1.8 小結 8
第2章 數據類型:Go語言的基石 9
2.1 一個簡單示例 9
2.2 基礎類型 11
2.2.1 整型 11
2.2.2 浮點型 11
2.2.3 布爾型 12
2.2.4 字符串 12
2.2.5 零值 12
2.3 變量 13
2.3.1 變量簡短聲明 13
2.3.2 指針 13
2.3.3 賦值 13
2.4 常量 14
2.4.1 常量的定義 14
2.4.2 iota 14
2.5 字符串的使用 15
2.5.1 字符串和數字互轉 15
2.5.2 strings包 16
2.6 小結 16
第3章
控制結構:if、for、switch
那些事兒 17
3.1 if條件語句 17
3.2 switch選擇語句 19
3.3 for循環語句 20
3.4 小結 22
第4章
集合類型:如何正確使用
array、slice和map 23
4.1 數組 24
4.1.1 數組聲明 24
4.1.2 數組循環 25
4.2 切片 25
4.2.1 基于數組生成切片 26
4.2.2 切片的修改 26
4.2.3 切片的聲明 27
4.2.4 append函數 27
4.2.5 切片元素循環 28
4.3 映射 28
4.3.1 創建和初始化map 28
4.3.2 獲取和刪除map 29
4.3.3 遍歷map 29
4.3.4 獲取map的大小 30
4.4 string和[]byte 30
4.5 小結 31
第5章
函數和方法:如何區分函數
和方法 32
5.1 函數 33
5.1.1 函數初探 33
5.1.2 函數聲明 33
5.1.3 多值返回 34
5.1.4 返回值命名 35
5.1.5 可變參數 36
5.1.6 包級函數 37
5.1.7 匿名函數和閉包 37
5.2 方法 39
5.2.1 不同于函數的方法 39
5.2.2 值和指針類型接收者 39
5.3 小結 40
第6章
struct和interface:隱式的
接口實現 42
6.1 結構體 43
6.1.1 結構體的定義 43
6.1.2 聲明和使用 44
6.1.3 結構體的字段 44
6.2 接口 45
6.2.1 接口的定義 45
6.2.2 接口的實現 46
6.2.3 值和指針類型接收者 47
6.3 工廠函數 48
6.4 繼承和組合 49
6.5 類型斷言 50
6.6 小結 52
第7章
錯誤處理:如何更優雅地
處理程序異常和錯誤 53
7.1 錯誤 54
7.1.1 error接口 54
7.1.2 error工廠函數 55
7.1.3 自定義error 55
7.1.4 error斷言 56
7.2 錯誤嵌套 56
7.2.1 Error Wrapping功能 56
7.2.2 errors.Unwrap函數 57
7.2.3 errors.Is函數 57
7.2.4 errors.As函數 58
7.3 defer函數 58
7.4 panic函數 59
7.5 recover函數 60
7.6 小結 60
第二部分 Go語言的高效并發
第8章
goroutine和channel:
并發的基礎 62
8.1 什么是并發 63
8.2 進程和線程 63
8.2.1 進程 63
8.2.2 線程 64
8.3 協程 64
8.4 管道 65
8.4.1 聲明一個管道 65
8.4.2 無緩沖管道 66
8.4.3 有緩沖管道 66
8.4.4 關閉管道 67
8.4.5 單向管道 67
8.5 select+channel示例 68
8.6 小結 69
第9章
同步原語:讓你對并發控制
得心應手 70
9.1 資源競爭 70
9.2 同步原語 71
9.2.1 sync.Mutex 71
9.2.2 sync.RWMutex 72
9.2.3 sync.WaitGroup 73
9.2.4 sync.Once 75
9.2.5 sync.Cond 76
9.3 小結 77
第10章
Context:多協程并發控制
神器 79
10.1 協程如何退出 79
10.2 Context的使用示例 81
10.3 Context詳解 82
10.4 Context樹 83
10.5 使用Context取消多個協程 84
10.6 Context傳值 85
10.7 Context使用原則 85
10.8 小結 86
第11章
并發模式:拿來即用的
經驗總結 87
11.1 for select循環模式 87
11.2 select timeout模式 88
11.3 流水線模式 89
11.4 扇出和扇入模式 92
11.5 Future模式 94
11.6 小結 96
第12章
并發技巧:高效并發
安全的字節池 97
12.1 字節切片 97
12.2 高效字節池 98
12.3 使用BytePoolCap 99
12.4
BytePoolCap與sync.Pool的
對比 99
12.5 小結 101
第三部分 深入理解Go語言
第13章
指針詳解:什么情況下
應該使用指針 104
13.1 什么是指針 104
13.2 指針的聲明和定義 105
13.3 指針的操作 107
13.4 指針參數 107
13.5 指針接收者 108
13.6 什么情況下使用指針 108
13.7 小結 109
第14章
參數傳遞:值、引用以及
指針的區別 110
14.1 修改參數 111
14.2 值類型 112
14.3 指針類型 113
14.4 引用類型 114
14.4.1 map 114
14.4.2 chan 116
14.5 類型的零值 116
14.6 小結 117
第15章
內存分配:new和make
該如何選擇 118
15.1 變量 118
15.1.1 變量的聲明 119
15.1.2 變量的賦值 119
15.2 new函數 120
15.3 變量初始化 121
15.3.1 指針變量初始化 122
15.3.2 make 函數 123
15.4 小結 124
第16章
運行時反射:字符串和
結構體之間如何轉換 125
16.1 什么是反射 125
16.2 獲取對象的值和類型 126
16.3 reflect.Value 126
16.3.1 結構體定義 126
16.3.2 獲取原始類型 128
16.3.3 修改對應的值 128
16.3.4 獲取對應的底層類型 129
16.4 reflect.Type 130
16.4.1 接口定義 130
16.4.2 遍歷結構體的字段和方法 131
16.4.3 是否實現某接口 132
16.5 字符串和結構體的互轉 133
16.5.1 JSON和struct互轉 133
16.5.2 struct tag功能 134
16.5.3 struct轉JSON的示例 135
16.6 反射定律 136
16.7 小結 137
第17章
非類型安全:不安全但
高效的unsafe 138
17.1 指針類型轉換 139
17.2 unsafe.Pointer 139
17.3 uintptr 指針類型 140
17.4 指針轉換規則 142
17.5 unsafe.Sizeof 142
17.6 小結 143
第18章
零拷貝:slice為何如此
高效 144
18.1 數組 144
18.2 slice 145
18.2.1 動態擴容 145
18.2.2 數據結構 146
18.2.3 高效的原因 148
18.2.4 string 和 []byte 互轉 149
18.3 小結 151
第19章
實戰:字符串如何高效
拼接 152
19.1 一個例子 152
19.2 幾種拼接方式 153
19.2.1 “+”拼接 153
19.2.2 fmt 拼接 153
19.2.3 join 拼接 154
19.2.4 buffer 拼接 154
19.2.5 builder拼接 155
19.3 性能對比 155
19.4 拼接函數改造 156
19.5 再次進行性能測試 157
19.5.1 10個字符串 157
19.5.2 100個字符串 160
19.5.3 1000個字符串 161
19.6 builder拼接慢在哪里 161
19.7 內存分配優化 162
19.8 小結 163
第四部分 Go語言工程管理
第20章 測試:質量保證的基石 166
20.1 單元測試 166
20.1.1 什么是單元測試 166
20.1.2 Go 語言的單元測試 167
20.1.3 單元測試覆蓋率 169
20.2 基準測試 170
20.2.1 什么是基準測試 170
20.2.2 Go 語言的基準測試 170
20.2.3 計時方法 171
20.2.4 內存統計 172
20.2.5 并發基準測試 172
20.2.6 基準測試實戰 173
20.3 小結 174
第21章
性能優化:如何寫出
高質量的代碼 175
21.1 代碼規范檢查 175
21.1.1 什么是代碼規范檢查 175
21.1.2 golangci-lint的安裝和使用 176
21.1.3 golangci-lint的配置 177
21.1.4 集成 golangci-lint 到 CI 179
21.2 性能優化 179
21.2.1 堆或棧分配 179
21.2.2 逃逸分析 180
21.2.3 優化技巧 182
21.3 小結 183
第22章 協作開發:模塊化管理 184
22.1 Go語言中的包 184
22.1.1 什么是包 184
22.1.2 使用包 185
22.1.3 作用域 185
22.1.4 自定義包 185
22.1.5 init 函數 186
22.2 Go 語言中的模塊 186
22.2.1 go mod 186
22.2.2 使用第三方模塊 187
22.3 小結 188
第五部分 Go語言泛型
第23章
初識泛型:使用泛型簡化
編程 192
23.1 一個非泛型示例 192
23.2 使用泛型重構示例 193
23.3 類型推導 194
23.4 自定義類型約束 194
23.5 內置的類型約束 195
23.5.1 Signed 196
23.5.2 Unsigned 196
23.5.3 Integer 196
23.5.4 Float 196
23.5.5 Ordered 196
23.6 函數式編程 197
23.6.1 map 197
23.6.2 reduce 199
23.6.3 filter 200
23.7 小結 201
第24章
深入泛型:漫談泛型
設計 202
24.1 為什么需要泛型 202
24.2 類型參數 203
24.3 泛型類型 204
24.4 類型約束 205
24.4.1 any約束 206
24.4.2 類型集 206
24.5 再論類型推導 209
24.5.1 參數類型推導 209
24.5.2 約束類型推導 210
24.6 小結 211
結束語 你的Go語言成長之路 212
打開Go語言之門 入門、實戰與進階 作者簡介
飛雪無情 Go 語言早期的布道者、“Go語言實戰筆記”作者,通過“飛雪無情”公眾號與數萬名讀者交流 Go 語言技術,擅長用通俗的語言將底層機制講得淺顯易懂。深耕技術領域近十年,前隨手記技術VP、Go Meetup講師、TGO鯤鵬會成員,目前在一家互聯網公司擔任副總裁,負責產品的研發管理和架構設計。
- >
山海經
- >
史學評論
- >
龍榆生:詞曲概論/大家小書
- >
推拿
- >
月亮與六便士
- >
羅庸西南聯大授課錄
- >
中國人在烏蘇里邊疆區:歷史與人類學概述
- >
巴金-再思錄