|
-- 會員 / 註冊 --
|
|
|
|
Go語言從入門到精通 ( 簡體 字) |
作者:謝瓊 | 類別:1. -> 程式設計 -> Go語言 |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 54104 詢問書籍請說出此書號!【有庫存】 NT售價: 400 元 |
出版日:2/1/2021 |
頁數:406 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115520760 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書主要內容包括Go語言簡介、開發環境準備、快速基礎入門、數學科學領域的計算、開發一個自己的日常命令行工具、文件處理、數據格式分析與轉換、正則表達式、并發處理、數據采集和清理應用、網絡服務端應用、Web服務器、加密解密領域應用、網絡提供的各種API、常用Go語言技術的示例與研究、實用函數實例等。安排了大量實例代碼,介紹相關編程知識。 |
目錄:第1章 Go語言簡介 1 1.1 Go語言的發展歷史 1 1.2 Go語言的主要特點 1 第2章 開發環境準備 4 2.1 安裝Go語言 4 2.1.1 Windows系統下安裝Go語言 4 2.1.2 Mac OS X系統下安裝Go語言 8 2.1.3 Linux系統下安裝Go語言 8 2.2 打造更舒適的開發環境 9 2.2.1 修改Windows資源管理器的一些 顯示設置 9 2.2.2 命令提示符CMD的替代方案 9 2.2.3 文本文件編輯器 11 2.3 Go語言開發工具的選擇 11 2.3.1 LiteIDE 11 2.3.2 Visual Studio Code加Go語言 插件 11 2.3.3 其他開發工具 14 第3章 Go語言快速入門 15 3.1 初識Go語言——編寫、編譯和運行 15 3.1.1 怎樣輸入Go語言程序 15 3.1.2 怎樣編譯Go語言程序 17 3.1.3 怎樣執行Go語言程序 18 3.1.4 怎樣查看Go語言的文檔 19 3.2 Go語言程序的組織 20 3.2.1 Go語言中程序文件的組織方式 20 3.2.2 非執行包與包的引用 22 3.2.3 自己編寫非執行包 23 3.2.4 非執行包名與目錄的關系 24 3.2.5 用多級子目錄組織包結構 25 3.3 關鍵字等語言要素 26 3.4 變量 26 3.4.1 變量的基本概念 26 3.4.2 浮點數類型的變量 28 3.4.3 字符串類型的變量 29 3.4.4 布爾類型的變量 29 3.4.5 變量的命名 30 3.4.6 變量聲明和賦值的簡化形式 31 3.4.7 復合類型的變量 32 3.4.8 變量類型的轉換 34 3.4.9 指針類型的變量 35 3.4.10 變量的零值 36 3.5 表達式 37 3.6 函數(方法) 37 3.7 自定義數據類型 40 3.8 面向對象編程 42 3.9 條件判斷與分支 45 3.10 循環 46 3.11 并發處理:Go例程 48 3.12 注釋 49 3.13 程序編譯或運行時出現錯誤 50 3.14 總結的代碼 51 第4章 Go語言的基本語法與 開發基礎 52 4.1 Go語言語法要素與代碼規范 52 4.1.1 文件和字符串編碼 52 4.1.2 語句、代碼塊與執行順序 53 4.1.3 語句分隔 53 4.1.4 語法記號 53 4.2 代碼格式化工具gofmt 54 4.3 常用的輔助性內置函數 55 4.3.1 內置的輸出信息函數print與 println 55 4.3.2 獲取數據長度的len函數 56 4.3.3 獲取變量容量的cap函數 57 4.3.4 用于復合類型數據的操作函數 57 4.3.5 用于處理異常的函數 58 4.4 格式化輸出函數fmt.Printf 58 4.4.1 整數格式化符%d 60 4.4.2 十六進制格式化符%x和%X 61 4.4.3 二進制格式化符%b 62 4.4.4 浮點數格式化符%f 62 4.4.5 其他浮點數格式化符 63 4.4.6 布爾類型的格式化符%t 64 4.4.7 Unicode碼相關格式化符%c、 %q和%U 64 4.4.8 字符串格式化符%s 65 4.4.9 指針格式化符%p 66 4.4.10 萬能格式化符 %v 66 4.4.11 輸出數值類型的格式化符%T 68 4.4.12 輸出%字符本身 68 4.5 獲取和使用第三方包 68 4.6 定義和使用常量 70 4.7 變量、函數等標識符聲明的作用范圍 72 4.8 tools包——編寫自己的函數庫 74 第5章 用Go語言進行數學、科學 領域的計算 76 5.1 表達式 76 5.1.1 最簡單的表達式——單個數值 76 5.1.2 操作符在表達式中的作用 76 5.1.3 函數在表達式中的作用 79 5.1.4 表達式的組合與計算的優先級 80 5.1.5 表達式中數據類型的一致性要求 81 5.2 用表達式進行數學計算 81 5.2.1 體重指數 81 5.2.2 用表達式計算體重指數 82 5.2.3 使用命令行參數傳入體重和 身高的變量值 83 5.3 利用系統自帶的數學庫進行計算 85 5.3.1 查閱Go語言中的參考文檔 85 5.3.2 使用math.Pow函數進行平方 計算 86 5.3.3 用math/rand包生成隨機數 87 5.4 用Go語言進行科學計算 90 5.4.1 向量與余弦相似度概念簡介 90 5.4.2 計算向量余弦相似度的函數 91 5.5 使用math/big包避免計算過程中 超大數溢出 93 5.5.1 big包的基本使用方法 93 5.5.2 用big包改進余弦相似度計算 函數 94 5.6 計算中的異常處理 95 5.6.1 Go語言中的匿名函數 95 5.6.2 Go語言的延遲處理機制 97 5.6.3 Go語言的異常處理機制 98 5.6.4 處理計算中的異常 100 5.6.5 Go語言中異常的傳遞順序 107 5.6.6 使用runtime庫輸出更多的異常 信息 108 5.7 使用第三方包進行更復雜的數學 計算 109 5.7.1 Gonum包中用于矩陣運算的mat 子包簡介 109 5.7.2 矩陣乘法的計算過程 109 5.7.3 用gonum/mat子包實現矩陣 乘法 110 第6章 用Go語言開發一個 命令行工具 113 6.1 命令行工具簡介 113 6.2 典型命令行工具的架構 113 6.3 基本的命令行工具clix程序框架 114 6.4 Go語言中的switch語句 115 6.5 clix的第一個命令:version 118 6.6 增加體重指數計算命令calbmi 118 6.6.1 tools包中增加判斷起始 子字符串的函數 118 6.6.2 子字符串的截取 119 6.6.3 tools包中增加判斷標志參數的 函數 120 6.6.4 編寫clix中的calbmi命令 120 6.6.5 增加命令行開關標志參數 121 6.6.6 使用flag包來分析命令行參數 123 6.7 第三個命令:數字排序 125 6.7.1 循環進階 125 6.7.2 冒泡法排序 130 6.7.3 用雙重循環實現冒泡法排序 131 6.7.4 命令行參數中傳入數字序列 131 6.7.5 在clix程序中加入冒泡法 排序的命令 133 6.8 Go語言中對典型代碼邏輯結構的 支持 133 6.8.1 基本的代碼結構 134 6.8.2 利用標簽跳出或繼續外層循環 134 6.8.3 goto語句無條件跳轉 136 6.8.4 遞歸(調用自身函數) 137 第7章 Go語言中的字符串處理 138 7.1 字符串相關的基礎知識 138 7.1.1 字符串的基本概念 138 7.1.2 byte、uint8和int8類型 138 7.1.3 byte類型的切片([]byte)與 string 140 7.1.4 字符串的基本操作:取長度、 連接、截取等 140 7.1.5 用雙引號或反引號括起字符串的 區別 141 7.2 字符串支持多語言編碼的特殊 處理 141 7.2.1 UTF-8編碼 142 7.2.2 rune類型和rune類型切片 143 7.2.3 用rune對字符串進行遍歷 144 7.3 常見的字符串操作 145 7.3.1 判斷字符串中是否含有某個子串 145 7.3.2 獲取字符串中子串的位置 146 7.3.3 獲取字符串中子串第n次出現的 位置 146 7.3.4 統計字符串中子串出現的次數 148 7.3.5 判斷字符串的起始或結尾子串 148 7.3.6 比較兩個字符串 149 7.3.7 去除字符串首尾空白或其他字符 150 7.3.8 替換字符串中的子串 152 7.3.9 字符串大小寫的轉換 152 7.3.10 切分字符串 153 7.3.11 合并字符串切片 154 7.3.12 生成重復子串組成的字符串 155 7.3.13 幾個Unicode操作 155 7.4 高級字符串操作 157 7.4.1 生成隨機字符串 157 7.4.2 用strings.Builder實現不斷增長的 字符串 159 7.4.3 用于讀取字符串內容的 strings.Reader 161 7.4.4 字符串與數字的相互轉化 162 7.4.5 用fmt.Sprintf實現靈活的字符串 處理 169 7.4.6 用fmt.Sscanf從字符串中讀取 信息 170 第8章 Go語言中的正則表達式 173 8.1 正則表達式的基本概念與用法 173 8.1.1 用正則表達式判斷字符串是否 含有符合一定規則的子串 173 8.1.2 用正則表達式從字符串中提取 符合一定規則的子串 174 8.1.3 用通配符“.”匹配任意字符 175 8.1.4 貪婪與非貪婪匹配 176 8.1.5 分組提取子串 177 8.1.6 提取所有符合條件的帶捕獲組的 匹配結果 178 8.1.7 替換符合正則表達式的子串 179 8.1.8 轉義字符 180 8.2 正則表達式進階知識 181 8.2.1 單個字符的表達 181 8.2.2 表達字符出現的次數(數量) 184 8.2.3 非字符匹配(位置匹配) 185 8.2.4 正則表達式中使用標志位進行 設置 186 8.2.5 可選子串匹配 187 8.2.6 非捕獲組 187 8.2.7 獲取匹配到子串的索引位置 188 8.2.8 用正則表達式分割字符串 188 8.2.9 判斷整個字符串是否匹配正則 表達式 189 8.2.10 按字節進行正則表達式匹配 189 第9章 Go語言文件處理 190 9.1 Go語言中文本文件的處理 190 9.1.1 文本文件的編碼 190 9.1.2 文本文件的打開、讀取與關閉等 基本操作 191 9.1.3 從較大的文本文件中讀取完整 內容 193 9.1.4 較簡單的讀取完整文本的方法 194 9.1.5 更簡單的讀取完整文本的方法 195 9.1.6 從文本文件中讀取指定 數量的行 196 9.1.7 將字符串寫入文本文件 198 9.1.8 向已有的文本文件中追加內容 199 9.1.9 用移動文件指針的方法向 文件中追加內容 200 9.1.10 文件、目錄的其他基本操作 201 9.1.11 文本文件編碼轉換 208 9.1.12 文本排序 215 9.1.13 超大文本文件排序 218 9.1.14 文本查重、去重 219 9.2 Go語言中二進制文件的處理 219 9.2.1 Go語言中用二進制文件存儲 數據 219 9.2.2 自定義文件格式存儲大量數據 記錄 224 9.3 文件處理總結 227 第10章 Go語言中數據格式的 分析與轉換 229 10.1 常見的數據交換格式 229 10.2 XML格式的處理 229 10.2.1 將數據序列化成XML格式 229 10.2.2 將XML格式的文本反序列化 232 10.2.3 省略字段、字符字段和原始 XML文本字段 234 10.2.4 自行控制某數據類型的XML 序列化/反序列化 235 10.3 JSON格式的處理 237 10.3.1 將數據序列化成JSON格式 237 10.3.2 將JSON格式的文本反序列化 239 10.3.3 JSON序列化/反序列化時使用 描述字符串 240 10.3.4 自行控制自定義數據類型的 JSON序列化/反序列化 242 10.3.5 用空接口類型實現復雜結構的 JSON序列化 244 10.3.6 JSON解析中空接口類型的 應用 246 10.3.7 使用第三方包進行JSON格式的 序列化與反序列化 248 第11章 Go語言的并發處理 250 11.1 Go語言并發編程基礎 250 11.2 并發處理時的共享沖突 253 11.3 使用通道類型實現安全的數據共享 255 11.4 使用通道作為數據訪問的令牌 257 11.5 使用通道實現多任務的歸并 258 11.6 用select實現多通道的歸并 260 11.7 select中實現超時中止 262 11.8 用單向通道自定義超時函數 263 11.9 使用sync包進行傳統的并發處理 265 11.9.1 用sync.WaitGroup實現 goroutine歸并 266 11.9.2 用鎖(互斥量)實現 goroutine同步 267 11.9.3 用讀寫鎖(互斥量)做“多 讀少寫”型并發任務 268 第12章 Go語言進行數據庫開發 270 12.1 Go語言進行數據庫開發的一般 方式 270 12.2 安裝SQLite數據庫驅動 270 12.3 基本的數據庫操作——新建庫表、 插入記錄和查詢 270 12.4 刪除記錄、準備SQL查詢等操作 273 12.5 獲取記錄條數、刪除庫表等操作 275 12.6 SQL型數據庫開發總結 276 12.7 NoSQL型數據庫開發示例 276 第13章 Go語言進行網絡服務的 開發 280 13.1 C/S架構與B/S架構的概念 280 13.2 基于Socket通信的客戶端/服務器 模式 280 13.3 基于TCP的Socket客戶端/服務器 系統 281 13.4 典型的Socket服務器的例子 281 13.5 典型的Socket客戶端的例子 283 13.6 典型的UDP服務器的例子 286 13.7 典型的UDP客戶端的例子 287 13.8 用Go語言搭建簡單的Web服務器 288 13.9 搭建簡單的文件服務器 290 13.10 搭建靜態文件型的Web網站 服務器 290 13.11 混合不同方式的Web服務器 293 13.12 搭建提供網絡接口服務的API 服務器 294 13.13 Web服務器的路由管理 297 13.14 動態網頁的生成 299 13.15 提供HTTPS方式訪問 302 13.16 第三方的Web開發包 303 13.17 Go語言中實現Web客戶端 305 第14章 Go語言進行繪圖和圖像 處理 307 14.1 基本的點繪圖 307 14.2 繪制曲線圖 308 14.3 繪制有填充色的形狀 311 14.4 實現漸變的填充色 314 14.5 使用第三方庫更方便實現復雜 圖形繪制 318 14.6 繪制平滑曲線 321 14.7 在圖片上繪制文字 323 14.8 使用freetype包進行文字繪制 326 14.9 用image/draw包實現靈活的圖像 處理 328 14.9.1 實現圖片區域復制 328 14.9.2 用draw.Draw函數進行顏色 填充 333 14.9.3 image包中的幾個重要對象 333 14.9.4 用顏色填充繪制矩形框 334 14.9.5 將圖片變成全透明 334 14.9.6 復制原圖中的區域到目標圖中 另一個區域 335 14.9.7 使用蒙版復制不規則區域 335 14.9.8 自定義image.Image類型的蒙版 對象 337 14.9.9 圖片色彩空間的轉換 338 14.10 在Web中輸出圖像 339 第15章 Go語言進行圖形界面 開發 343 15.1 使用Qt開發圖形界面 343 15.1.1 Go結合Qt開發環境的搭建 343 15.1.2 Go結合Qt開發基礎示例 344 15.1.3 部署therecipe/qt示例程序 346 15.1.4 在goroutine中安全操作圖形 界面 347 15.2 使用govcl包開發圖形界面 355 15.2.1 使用govcl包開發圖形界面的 基礎示例 355 15.2.2 govcl包中避免并發界面操作 沖突 358 15.3 Go語言中開發基于Web的圖形 界面 360 第16章 Go語言的反射機制 361 16.1 用反射機制獲取基本類型的信息 361 16.2 用反射獲取復雜類型的信息 362 16.3 函數的傳值與傳引用 363 16.4 用反射獲取結構類型(對象)的 成員信息 364 16.5 用反射獲取空接口類型數據的 實際類型 366 16.6 用Kind函數獲取基類型 367 16.7 判斷對象是否實現了某方法或接口 370 16.8 動態調用對象的方法 372 16.9 修改數據 374 16.10 實例:JSON處理 375 第17章 Go語言的測試與性能 378 17.1 功能測試 378 17.1.1 基本的功能測試 378 17.1.2 功能測試不通過的情況 379 17.1.3 立即中止測試用例函數 380 17.1.4 簡化的中止測試用例函數 381 17.1.5 跳過測試用例 381 17.1.6 進行并發測試 382 17.1.7 指定運行的測試用例 383 17.2 性能測試 384 17.2.1 基本的性能測試 384 17.2.2 根據性能測試結果進行優化和 比對 386 17.2.3 指定性能測試的時長 387 17.2.4 手動控制測試計時 388 17.2.5 測試內存分配的情況 388 第18章 Go語言與其他語言的 結合運用 390 18.1 Cgo 390 18.1.1 Go語言中直接編寫C語言 代碼 390 18.1.2 Go語言中調用C語言 文件中的代碼 393 18.1.3 Go語言中編寫函數供 C語言調用 394 18.1.4 Cgo的一些局限 396 18.2 Go語言中運行其他腳本語言 396 18.2.1 Tengo腳本語言 396 18.2.2 實現JavaScript虛擬機的 otto包 398 18.2.3 實現Lua語言虛擬機的 go-lua包 399 18.3 Go語言中直接執行其他程序或調用 系統命令 400 18.3.1 調用應用程序并讀取其輸出 400 18.3.2 使用管道從程序的輸出中接收 信息 402 18.4 Go語言與WebAssembly 404
|
序: |
|