预购商品
书目分类
特别推荐
第 1 章 Rust基礎 1 1.1 Rust概述 1 1.1.1 Rust的來源與定義 1 1.1.2 Rust適合做什麼 2 1.1.3 Rust的特點 3 1.1.4 Rust和其他語言的總體比較 4 1.2 Rust到底值不值得學 5 1.2.1 Rust是一種全面創新的語言 6 1.2.2 引用和借用 8 1.2.3 生命期 9 1.2.4 編譯時檢查和運行時開銷 10 1.2.5 有限的面向對象特徵 11 1.2.6 擴展庫支持 13 1.2.7 Rust是一種可以進行底層開發的高級語言 14 第 2 章 搭建Rust開發環境 15 2.1 搭建Windows下的Rust開發環境 15 2.1.1 安裝vs_buildtools 15 2.1.2 安裝Rust相關工具 16 2.1.3 第一個Rust項目 17 2.1.4 VS Code搭建Rust開發環境 18 2.1.5 VS Code單步調試Rust程序 20 2.1.6 VS Code自動清除輸出窗口 22 2.1.7 VS Code修改程序自動保存 23 2.1.8 關閉rust-analyzer插件的自動類型提示 23 2.2 在Linux下搭建Rust開發環境 24 2.2.1 安裝基本開發工具 24 2.2.2 啟用SSH 24 2.2.3 安裝C編譯工具 26 2.2.4 安裝和配置Rust編譯環境 27 2.2.5 命令行開發Rust程序 28 2.2.6 在VS Code中開發遠程Rust程序 30 第 3 章 常量、變量和標量數據類型 39 3.1 Rust程序結構 39 3.2 注釋 41 3.3 常量 42 3.3.1 常量的定義 42 3.3.2 直接常量 42 3.3.3 const常量 43 3.4 變量 44 3.4.1 Rust中的關鍵字 45 3.4.2 變量的命名規則 46 3.4.3 變量的定義 47 3.4.4 變量的賦值 48 3.4.5 變量的初始化 49 3.4.6 變量的可變性 49 3.4.7 變量遮蔽 50 3.4.8 字符串變量 51 3.5 數據類型的定義和分類 52 3.6 標量數據類型 53 3.6.1 整型 53 3.6.2 布爾型 57 3.6.3 字符類型 57 3.6.4 浮點型 58 3.6.5 得到變量的字節數 59 3.7 常數的數據類型 60 3.8 作用域 61 3.9 所有權 63 3.9.1 讓我們回憶棧和堆 63 3.9.2 什麼是所有權 63 第 4 章 運算符和格式化輸出 65 4.1 運算符 65 4.1.1 賦值運算符 65 4.1.2 數學運算符 66 4.1.3 組合運算符 66 4.1.4 關係運算符 67 4.1.5 邏輯運算符 68 4.1.6 位運算符 69 4.1.7 變量類型轉換運算符 70 4.1.8 運算符的優先級 71 4.2 格式化輸出宏 72 4.2.1 默認輸出 73 4.2.2 通配符{} 73 4.2.3 通配符和位置 73 4.2.4 通配符和命名參數 74 4.2.5 輸出不同的進制數 74 4.2.6 指定寬度 76 4.2.7 填充與對齊 77 4.2.8 指定小數的精確值 78 4.2.9 輸出{和} 79 4.2.10 格式化宏format! 80 第 5 章 選擇結構 81 5.1 if選擇語句 81 5.1.1 單分支if語句 82 5.1.2 雙分支if…else語句 83 5.1.3 多分支if語句 83 5.1.4 在let語句中使用if 86 5.2 匹配控制語句match 86 5.2.1 匹配整數 87 5.2.2 匹配枚舉類型 87 5.2.3 匹配元組 88 5.2.4 匹配範圍 88 5.2.5 匹配守衛 89 5.2.6 一些經驗 89 第 6 章 控制結構 91 6.1 生活及數學中的循環控制 91 6.2 for循環 91 6.3 while循環 92 6.4 loop循環 93 6.5 break語句 93 6.5.1 break單獨使用 94 6.5.2 break帶出返回值 94 6.5.3 跳轉到指定標簽的循環 95 6.6 continue語句 96 6.6.1 continue單獨使用 96 6.6.2 跳轉到指定標簽的循環 97 第 7 章 函數 99 7.1 函數定義 99 7.2 函數參數 100 7.3 函數返回值 100 7.4 函數重載 101 7.5 函數作為參數和返回值 102 7.6 Rust泛型 102 7.6.1 什麼是泛型編程 102 7.6.2 在函數中使用泛型 103 7.6.3 在結構體中使用泛型 106 第 8 章 複合數據類型 108 8.1 數組 108 8.1.1 什麼是數組 108 8.1.2 數組的定義和初始化 109 8.1.3 輸出數組元素 110 8.1.4 得到數組長度 110 8.1.5 默認值初始化 110 8.1.6 訪問數組元素 111 8.1.7 數組切片 111 8.1.8 多維數組 113 8.2 元組 113 8.2.1 元組的定義 113 8.2.2 元組的輸出 114 8.2.3 訪問元組中的單個元素 114 8.3 結構體類型 115 8.3.1 結構體的定義 116 8.3.2 結構體實例化 116 8.3.3 結構體的方法 117 8.3.4 結構體的關聯函數 118 8.3.5 結構體的特性 119 8.3.6 結構體的注意事項 119 8.4 枚舉類型 120 8.4.1 定義枚舉類型 120 8.4.2 枚舉類型的使用 122 8.4.3 包含數據的枚舉 123 8.4.4 some類型 124 8.5 trait 125 8.5.1 成員方法 125 8.5.2 靜態方法 128 8.5.3 擴展方法 129 8.5.4 完整函數調用方法 130 8.5.5 trait約束和繼承 131 8.5.6 derive屬性 132 8.5.7 trait別名 133 8.5.8 Sized trait 133 8.5.9 默認trait 134 第 9 章 指針 135 9.1 指針的概念 135 9.1.1 地址和指針 135 9.1.2 指針變量的定義 136 9.2 指針變量的基本使用方法 137 9.2.1 指針變量的賦值 137 9.2.2 得到指針變量的大小 138 9.2.3 得到指針變量所指變量的值 139 9.2.4 指針變量做函數參數 140 9.2.5 指針變量做函數返回值 141 9.2.6 數組通過指針來引用 142 9.3 函數指針 143 9.3.1 什麼是函數指針 143 9.3.2 用函數指針變量調用函數 143 9.3.3 函數指針做函數參數 146 9.4 指針數組 148 第 10 章 模塊化編程和標準庫 150 10.1 箱 151 10.1.1 創建crate庫 151 10.1.2 創建可執行的crate 152 10.1.3 可執行crate調用crate庫 152 10.2 包 153 10.2.1 創建可執行類型的包 154 10.2.2 僅編譯包 155 10.2.3 創建庫類型的包 155 10.2.4 包管理工具Cargo 157 10.2.5 典型的包結構 158 10.2.6 引用外部庫 160 10.3 模塊 164 10.3.1 模塊的定義 164 10.3.2 模塊的結構 165 10.3.3 模塊的訪問控制 166 10.3.4 模塊的基本使用 169 10.3.5 創建嵌套模塊 169 10.3.6 多模塊多文件 174 10.4 工作區的概念 177 10.5 標準庫概述 177 第 11 章 標準庫中的字符串對象 180 11.1 概述 180 11.2 創建字符串對象 180 11.3 字符串對象常用的方法 182 11.3.1 as_bytes得到字符串內容的字節切片 182 11.3.2 as_mut_str轉換字符串的可變性 182 11.3.3 as_str提取整個字符串切片 182 11.3.4 capacity獲得此字符串的緩衝區容量 183 11.3.5 clear刪除字符串內容 183 11.3.6 drain刪除部分字符串 183 11.3.7 from_raw_parts創建新的字符串 184 11.3.8 from_utf16將UTF-16編碼的矢量解碼為字符串 184 11.3.9 from_utf8將字節向量轉換為字符串 185 11.3.10 insert插入一個字符 185 11.3.11 insert_str插入一個字符串切片 186 11.3.12 into_bytes將字符串轉換為字節向量 186 11.3.13 is_empty判斷字符串長度是否為零 186 11.3.14 len得到字符串長度 186 11.3.15 new創建一個新的空字符串 187 11.3.16 with_capacity創建指定容量的新空字符串 187 11.3.17 push追加字符 187 11.3.18 push_str追加字符串 188 11.3.19 truncate縮短字符串 188 11.3.20 pop刪除最後一個字符 188 11.3.21 remove刪除指定字符 190 11.3.22 reserve保留容量 191 11.3.23 shrink_to使用下限縮小此字符串的容量 191 11.3.24 shrink_to_fit縮小此字符串的容量 192 11.3.25 split_off分割字符串 192 11.3.26 truncate縮短字符串 192 第 12 章 多線程編程 193 12.1 閉包 193 12.1.1 閉包的定義和語法 193 12.1.2 捕獲變量 194 12.1.3 閉包作為參數和返回值 195 12.1.4 閉包的使用場景 195 12.2 多線程編程概述 196 12.2.1 線程的基本概念 196 12.2.2 併發 196 12.2.3 Rust線程模型 197 12.3 模塊std::thread 197 12.3.1 spawn創建線程 197 12.3.2 等待所有線程完成 199 12.3.3 在線程中使用其他線程數據 202 12.3.4 線程函數 204 12.3.5 available_parallelism返回默認並行度 205 12.3.6 獲得當前線程的名稱和id 206 12.4 線程間通信 208 第 13 章 標準輸入輸出和命令行參數 209 13.1 概述 209 13.2 從標準輸入流中讀取數據 210 13.2.1 trait Read 210 13.2.2 trait BufRead 212 13.2.3 標準輸入函數stdin 213 13.3 標準輸出流 215 13.4 命令行參數 217 第 14 章 文件讀寫 219 14.1 打開文件 219 14.2 創建文件 220 14.3 寫文件 221 14.4 讀文件 221 14.5 追加內容到文件末尾 222 14.6 刪除文件 223 14.7 複製文件 224 第 15 章 網絡編程實戰 225 15.1 套接字的基本概念 225 15.1.1 網絡程序的架構 226 15.1.2 套接字的類型 227 15.2 IP地址枚舉IpAddr 228 15.2.1 is_unspecified函數 229 15.2.2 is_loopback函數 229 15.2.3 is_multicast函數 230 15.2.4 is_ipv4函數 230 15.2.5 is_ipv6函數 230 15.3 IPv4結構Ipv4Addr 231 15.3.1 new函數 231 15.3.2 常量LOCALHOST 232 15.3.3 常量UNSPECIFIED 232 15.3.4 常量BROADCAST 232 15.3.5 octets函數 232 15.3.6 is_unspecified函數 233 15.3.7 is_loopback函數 233 15.3.8 is_link_local函數 233 15.3.9 is_multicast函數 234 15.3.10 is_broadcast函數 234 15.3.11 to_ipv6_compatible函數 235 15.3.12 to_ipv6_mapped函數 235 15.4 IPv4套接字地址SocketAddrV4 235 15.4.1 new函數 236 15.4.2 ip函數 236 15.4.3 set_ip函數 236 15.4.4 port函數 237 15.4.5 set_port函數 237 15.5 TCP套接字編程的基本步驟 237 15.6 TCP偵聽器TcpListener 238 15.6.1 bind函數 239 15.6.2 local_addr函數 239 15.6.3 try_clone函數 240 15.6.4 accept函數 240 15.6.5 incoming函數 241 15.6.6 set_ttl函數 241 15.6.7 ttl函數 242 15.6.8 take_error函數 242 15.6.9 set_nonblocking函數 242 15.7 TCP流結構TcpStream 243 15.7.1 connect函數 243 15.7.2 connect_timeout函數 244 15.7.3 peer_addr函數 244 15.7.4 local_addr函數 245 15.7.5 shutdown函數 245 15.7.6 try_clone函數 245 15.7.7 set_read_timeout函數 246 15.7.8 set_write_timeout函數 246 15.7.9 read_timeout函數 247 15.7.10 write_timeout函數 247 15.7.11 peek函數 247 15.7.12 set_nodelay函數 248 15.7.13 nodelay函數 248 15.7.14 set_ttl函數 248 15.7.15 ttl函數 249 15.7.16 take_error函數 249 15.7.17 set_nonblocking函數 249 15.8 實戰TCP服務器客戶端編程 250 15.9 UDP套接字結構UdpSocket 251 15.9.1 bing函數 252 15.9.2 recv_from函數 253 15.9.3 peek_from函數 253 15.9.4 send_to函數 253 15.9.5 peer_addr函數 254 15.9.6 local_addr函數 254 15.9.7 local_addr函數 254 15.9.8 set_read_timeout函數 255 15.9.9 set_write_timeout函數 255 15.9.10 read_timeout函數 256 15.9.11 write_timeout函數 256 15.9.12 set_broadcast函數 256 15.9.13 broadcast函數 257 15.9.14 set_multicast_loop_v4函數 257 15.9.15 multicast_loop_v4函數 257 15.9.16 set_multicast_ttl_v4函數 257 15.9.17 multicast_ttl_v4函數 258 15.9.18 set_multicast_loop_v6函數 258 15.9.19 multicast_loop_v6函數 258 15.9.20 set_ttl函數 259 15.9.21 ttl函數 259 15.9.22 take_error函數 259 15.9.23 connect函數 260 15.9.24 send函數 260 15.9.25 recv函數 260 15.9.26 peek函數 261 15.9.27 set_nonblocking函數 261 15.9.28 實戰UDP編程 262 15.10 網絡實戰案例 263 15.10.1 HTTP的工作原理 263 15.10.2 HTTP的特點 264 15.10.3 HTTP消息結構 264 15.10.4 客戶端請求消息 265 15.10.5 服務器響應消息 266 15.10.6 HTTP狀態碼 267 15.10.7 HTTP狀態碼分類 267 15.10.8 實現HTTP服務器 268 第 16 章 圖像和遊戲開發實戰 271 16.1 圖像編程基礎 271 16.2 Piston概述 273 16.3 WindowSettings結構體 274 16.3.1 new函數 274 16.3.2 build函數 274 16.3.3 get_title函數 274 16.3.4 set_title函數 274 16.3.5 title函數 275 16.3.6 get_size函數 275 16.3.7 set_size函數 275 16.3.8 size函數 275 16.3.9 get_fullscreen函數 275 16.3.10 set_fullscreen函數 275 16.3.11 fullscreen函數 275 16.3.12 get_exit_on_esc函數 276 16.3.13 set_exit_on_esc函數 276 16.3.14 exit_on_esc函數 276 16.3.15 get_automatic_close函數 276 16.3.16 set_automatic_close函數 276 16.3.17 automatic_close函數 276 16.4 piston_window庫 280 16.5 遊戲實戰案例 286 第 17 章 數據分析實戰 295 17.1 Polars概述 295 17.1.1 什麼是Polars 295 17.1.2 Polars和Pandas對比 296 17.1.3 為什麼需要Polars 296 17.1.4 安裝Polars 297 17.1.5 創建DataFrame 297 17.1.6 加載外部數據 301 17.2 瀏覽數據 303 17.3 數據描述 304 17.4 聚合統計 305 17.5 數據清洗 306 17.5.1 處理缺失值 306 17.5.2 剔除重複值 307 17.6 數據操作 308 17.6.1 選擇列 308 17.6.2 數據篩選(過濾) 308 17.6.3 排序 309 17.6.4 合併 310 17.6.5 分組 311
朱文偉,名校計算機專業統招碩士,20多年CC、Java開發經驗。主導開發過密碼、圖形、人工智能等產品。精通Linux、Windows系統開發及數據庫開發技術。著有圖書: 《嵌入式Linux驅動開發實踐》《高性能Linux網絡編程核心技術揭秘》《Linux C/C 服務器開發實踐》《Qt 6.x從入門到精通》《PyQt 5從入門到精通》《Linux C與C 一線開發實踐》《Visual C 2017從入門到精通》《Windows C/C 加密解密實戰》《密碼學原理與Java實現》《OpenCV 4.5計算機視覺開發實戰(基於VC )》《OpenCV 4.5計算機視覺開發實戰:基於Python》。
客服公告
热门活动
订阅电子报