發表於2024-11-27
Go語言從入門到進階實戰:視頻教學版 計算機與互聯網 書籍|8014297 pdf epub mobi txt 電子書 下載
書名: | Go語言從入門到進階實戰:視頻教學版|8014297 |
圖書定價: | 99元 |
圖書作者: | 徐波 |
齣版社: | 機械工業齣版社 |
齣版日期: | 2018/6/1 0:00:00 |
ISBN號: | 9787111598244 |
開本: | 16開 |
頁數: | 0 |
版次: | 1-1 |
目錄 |
配套學習資源 前言 第1章 初識Go語言 1 1.1 Go語言特性 1 1.2 使用Go語言的項目 9 1.3 怎樣安裝Go語言開發包 10 1.3.1 Windows版安裝 11 1.3.2 Linux版安裝 13 1.4 搭建開發環境 14 1.4.1 集成開發環境——Jetbrains GoLand 14 1.4.2 方便定義功能的編輯器——Visual Studio Code 15 第2章 Go語言基本語法與使用 19 2.1 變量 19 2.1.1 聲明變量 19 2.1.2 初始化變量 20 2.1.3 多個變量同時賦值 23 2.1.4 匿名變量——沒有名字的變量 24 2.2 數據類型 24 2.2.1 整型 25 2.2.2 浮點型 25 2.2.3 示例:輸齣正弦函數(Sin)圖像 26 2.2.4 布爾型 28 2.2.5 字符串 29 2.2.6 字符 31 2.2.7 切片——能動態分配的空間 32 2.3 轉換不同的數據類型 33 2.4 指針 34 2.4.1 認識指針地址和指針類型 35 2.4.2 從指針獲取指針指嚮的值 36 2.4.3 使用指針修改值 37 2.4.4 示例:使用指針變量獲取命令行的輸入信息 39 2.4.5 創建指針的另一種方法——new()函數 40 2.5 變量生命期——變量能夠使用的代碼範圍 40 2.5.1 什麼是棧 41 2.5.2 什麼是堆 42 2.5.3 變量逃逸(Escape Analysis)——自動決定變量分配方式,提高運行效率 43 2.6 字符串應用 46 2.6.1 計算字符串長度 46 2.6.2 遍曆字符串——獲取每一個字符串元素 47 2.6.3 獲取字符串的某一段字符 48 2.6.4 修改字符串 49 2.6.5 連接字符串 49 2.6.6 格式化 50 2.6.7 示例:Base64編碼——電子郵件的基礎編碼格式 51 2.6.8 示例:從INI配置文件中查詢需要的值 52 2.7 常量——恒定不變的值 57 2.7.1 枚舉——一組常量值 58 2.7.2 將枚舉值轉換為字符串 59 2.8 類型彆名(Type Alias) 60 2.8.1 區分類型彆名與類型定義 61 2.8.2 非本地類型不能定義方法 62 2.8.3 在結構體成員嵌入時使用彆名 63 第3章 容器:存儲和組織數據的方式 65 3.1 數組——固定大小的連續空間 65 3.1.1 聲明數組 66 3.1.2 初始化數組 66 3.1.3 遍曆數組——訪問每一個數組元素 67 3.2 切片(slice)——動態分配大小的連續空間 67 3.2.1 從數組或切片生成新的切片 68 3.2.2 聲明切片 70 3.2.3 使用make()函數構造切片 71 3.2.4 使用append()函數為切片添加元素 71 3.2.5 復製切片元素到另一個切片 73 3.2.6 從切片中刪除元素 74 3.3 映射(map)——建立事物關聯的容器 76 3.3.1 添加關聯到map並訪問關聯和數據 76 3.3.2 遍曆map的“鍵值對”——訪問每一個map中的關聯關係 77 3.3.3 使用delete()函數從map中刪除鍵值對 79 3.3.4 清空map中的所有元素 79 3.3.5 能夠在並發環境中使用的map——sync.Map 79 3.4 列錶(list)——可以快速增刪的非連續空間的容器 81 3.4.1 初始化列錶 83 3.4.2 在列錶中插入元素 83 3.4.3 從列錶中刪除元素 84 3.4.4 遍曆列錶——訪問列錶的每一個元素 85 第4章 流程控製 87 4.1 條件判斷(if) 87 4.2 構建循環(for) 88 4.2.1 for中的初始語句——開始循環時執行的語句 89 4.2.2 for中的條件錶達式——控製是否循環的開關 89 4.2.3 for中的結束語句——每次循環結束時執行的語句 90 4.3 示例:九九乘法錶 90 4.4 鍵值循環(for range)——直接獲得對象的索引和數據 91 4.4.1 遍曆數組、切片——獲得索引和元素 92 4.4.2 遍曆字符串——獲得字符 92 4.4.3 遍曆map——獲得map的鍵和值 92 4.4.4 遍曆通道(channel)——接收通道數據 93 4.4.5 在遍曆中選擇希望獲得的變量 93 4.5 分支選擇(switch)——擁有多個條件分支的判斷 94 4.5.1 基本寫法 95 4.5.2 跨越case的fallthrough——兼容C語言的case設計 96 4.6 跳轉到指定代碼標簽(goto) 96 4.6.1 使用goto退齣多層循環 96 4.6.2 使用goto集中處理錯誤 97 4.6.3 統一錯誤處理 98 4.7 跳齣指定循環(break)——可以跳齣多層循環 99 4.8 繼續下一次循環(continue) 100 第5章 函數(function) 101 5.1 聲明函數 101 5.1.1 普通函數的聲明形式 101 5.1.2 參數類型的簡寫 102 5.1.3 函數的返迴值 102 5.1.4 調用函數 104 5.1.5 示例:將“秒”解析為時間單位 104 5.1.6 示例:函數中的參數傳遞效果測試 105 5.2 函數變量——把函數作為值保存到變量中 108 5.3 示例:字符串的鏈式處理——操作與數據分離的設計技巧 109 5.4 匿名函數——沒有函數名字的函數 112 5.4.1 定義一個匿名函數 112 5.4.2 匿名函數用作迴調函數 113 5.4.3 使用匿名函數實現操作封裝 113 5.5 函數類型實現接口——把函數作為接口來調用 115 5.5.1 結構體實現接口 115 5.5.2 函數體實現接口 116 5.5.3 HTTP包中的例子 117 5.6 閉包(Closure)——引用瞭外部變量的匿名函數 118 5.6.1 在閉包內部修改引用的變量 119 5.6.2 示例:閉包的記憶效應 119 5.6.3 示例:閉包實現生成器 121 5.7 可變參數——參數數量不固定的函數形式 122 5.7.1 fmt包中的例子 122 5.7.2 遍曆可變參數列錶——獲取每一個參數的值 123 5.7.3 獲得可變參數類型——獲得每一個參數的類型 124 5.7.4 在多個可變參數函數中傳遞參數 125 5.8 延遲執行語句(defer) 127 5.8.1 多個延遲執行語句的處理順序 127 5.8.2 使用延遲執行語句在函數退齣時釋放資源 127 5.9 處理運行時發生的錯誤 131 5.9.1 net包中的例子 131 5.9.2 錯誤接口的定義格式 132 5.9.3 自定義一個錯誤 132 5.9.4 示例:在解析中使用自定義錯誤 133 5.10 宕機(panic)——程序終止運行 135 5.10.1 手動觸發宕機 135 5.10.2 在運行依賴的必備資源缺失時主動觸發宕機 136 5.10.3 在宕機時觸發延遲執行語句 136 5.11 宕機恢復(recover)——防止程序崩潰 137 5.11.1 讓程序在崩潰時繼續執行 137 5.11.2 panic和recover的關係 139 第6章 結構體(struct) 141 6.1 定義結構體 141 6.2 實例化結構體——為結構體分配內存並初始化 142 6.2.1 基本的實例化形式 142 6.2.2 創建指針類型的結構體 143 6.2.3 取結構體的地址實例化 143 6.3 初始化結構體的成員變量 144 6.3.1 使用“鍵值對”初始化結構體 145 6.3.2 使用多個值的列錶初始化結構體 146 6.3.3 初始化匿名結構體 147 6.4 構造函數——結構體和類型的一係列初始化操作的函數封裝 148 6.4.1 多種方式創建和初始化結構體——模擬構造函數重載 149 6.4.2 帶有父子關係的結構體的構造和初始化——模擬父級構造調用 149 6.5 方法 150 6.5.1 為結構體添加方法 151 6.5.2 接收器——方法作用的目標 152 6.5.3 示例:二維矢量模擬玩傢移動 155 6.5.4 為類型添加方法 160 6.5.5 示例:使用事件係統實現事件的響應和處理 165 6.6 類型內嵌和結構體內嵌 170 6.6.1 聲明結構體內嵌 170 6.6.2 結構內嵌特性 172 6.6.3 使用組閤思想描述對象特性 173 6.6.4 初始化結構體內嵌 174 6.6.5 初始化內嵌匿名結構體 175 6.6.6 成員名字衝突 177 6.7 示例:使用匿名結構體分離JSON數據 178 第7章 接口(interface) 181 7.1 聲明接口 181 7.1.1 接口聲明的格式 181 7.1.2 開發中常見的接口及寫法 182 7.2 實現接口的條件 182 7.2.1 接口被實現的條件一:接口的方法與實現接口的類型方法格式一緻 182 7.2.2 條件二:接口中所有方法均被實現 185 7.3 理解類型與接口的關係 186 7.3.1 一個類型可以實現多個接口 186 7.3.2 多個類型可以實現相同的接口 187 7.4 示例:便於擴展輸齣方式的日誌係統 189 7.5 示例:使用接口進行數據的排序 195 7.5.1 使用sort.Interface接口進行排序 195 7.5.2 常見類型的便捷排序 197 7.5.3 對結構體數據進行排序 199 7.6 接口的嵌套組閤——將多個接口放在一個接口內 202 7.7 在接口和類型間轉換 205 7.7.1 類型斷言的格式 205 7.7.2 將接口轉換為其他接口 205 7.7.3 將接口轉換為其他類型 208 7.8 空接口類型(interface{})——能保存所有值的類型 208 7.8.1 將值保存到空接口 209 7.8.2 從空接口獲取值 209 7.8.3 空接口的值比較 210 7.9 示例:使用空接口實現可以保存任意值的字典 211 7.10 類型分支——批量判斷空接口中變量的類型 214 7.10.1 類型斷言的書寫格式 214 7.10.2 使用類型分支判斷基本類型 215 7.10.3 使用類型分支判斷接口類型 215 7.11 示例:實現有限狀態機(FSM) 217 第8章 包(package) 227 8.1 工作目錄(GOPATH) 227 8.1.1 使用命令行查看GOPATH信息 227 8.1.2 使用GOPATH的工程結構 228 8.1.3 設置和使用GOPATH 229 8.1.4 在多項目工程中使用GOPATH 230 8.2 創建包package——編寫自己的代碼擴展 231 8.3 導齣標識符——讓外部訪問包的類型和值 231 8.3.1 導齣包內標識符 231 8.3.2 導齣結構體及接口成員 232 8.4 導入包(import)——在代碼中使用其他的代碼 232 8.4.1 默認導入的寫法 233 8.4.2 導入包後自定義引用的包名 234 8.4.3 匿名導入包——隻導入包但不使用包內類型和數值 235 8.4.4 包在程序啓動前的初始化入口:init 235 8.4.5 理解包導入後的init()函數初始化順序 235 8.5 示例:工廠模式自動注冊——管理多個包的結構體 237 第9章 並發 241 9.1 輕量級綫程(goroutine)——根據需要隨時創建的“綫程” 241 9.1.1 使用普通函數創建goroutine 241 9.1.2 使用匿名函數創建goroutine 244 9.1.3 調整並發的運行性能(GOMAXPROCS) 245 9.1.4 理解並發和並行 245 9.1.5 Go語言的協作程序(goroutine)和普通的協作程序(coroutine) 246 9.2 通道(channel)——在多個goroutine間通信的管道 246 9.2.1 通道的特性 247 9.2.2 聲明通道類型 247 9.2.3 創建通道 248 9.2.4 使用通道發送數據 248 9.2.5 使用通道接收數據 249 9.2.6 示例:並發打印 252 9.2.7 單嚮通道——通道中的單行道 254 9.2.8 帶緩衝的通道 255 9.2.9 通道的多路復用——同時處理接收和發送多個通道的數據 257 9.2.10 示例:模擬遠程過程調用(RPC) 258 9.2.11 示例:使用通道響應計時器的事件 261 9.2.12 關閉通道後繼續使用通道 264 9.3 示例:Telnet迴音服務器——TCP服務器的基本結構 266 9.4 同步——保證並發環境下數據訪問的正確性 273 9.4.1 競態檢測——檢測代碼在並發環境下可能齣現的問題 273 9.4.2 互斥鎖(sync.Mutex)——保證同時隻有一個goroutine可以訪問共享資源 275 9.4.3 讀寫互斥鎖(sync.RWMutex)——在讀比寫多的環境下比互斥鎖更高效 277 9.4.4 等待組(sync.WaitGroup)——保證在並發環境中完成指定數量的任務 277 第10章 反射 280 10.1 反射的類型對象(reflect.Type) 280 10. Go語言從入門到進階實戰:視頻教學版 計算機與互聯網 書籍|8014297 下載 mobi epub pdf txt 電子書 Go語言從入門到進階實戰:視頻教學版 計算機與互聯網 書籍|8014297 pdf epub mobi txt 電子書 下載 用戶評價
評分
評分
評分
評分
評分
評分
評分
評分
評分
類似圖書 點擊查看全場最低價
Go語言從入門到進階實戰:視頻教學版 計算機與互聯網 書籍|8014297 pdf epub mobi txt 電子書 下載 分享鏈接
去京東購買
去淘寶購買
去噹噹購買
去拼多多購買
相關圖書
|