第1章 終端打印1
1.1 如何開始1
1.2 Hello,world!2
1.3 打印字面量字符串的組合3
1.4 打印多行文本4
1.5 打印整數(shù)5
1.6 命令行腳本6
1.7 注釋6
第2章 算術(shù)運算8
2.1 整數(shù)加法8
2.2 整數(shù)之間的其他運算9
2.3 浮點運算10
2.4 語句序列11
2.5 分斷字面量字符串12
第3章 命名對象14
3.1 將名稱與值相關(guān)聯(lián)14
3.2 可變變量16
3.3 未變化的可變變量17
3.4 未初始化的變量18
3.5 前導下劃線19
3.6 布爾值20
3.7 布爾表達式22
3.8 賦值中的類型一致性23
3.9 類型和可變性的改變24
3.10 賦值算術(shù)運算符25
3.11 使用標準庫的函數(shù)25
第4章 控制執(zhí)行流27
4.1 條件語句(if)27
4.2 條件表達式29
4.3 條件循環(huán)(while)30
4.4 無限循環(huán)(loop)32
4.5 計數(shù)循環(huán)(for)33
4.6 變量作用域34
第5章 使用數(shù)據(jù)序列37
5.1 數(shù)組37
5.1.1 可變數(shù)組39
5.1.2 指定大小的數(shù)組40
5.1.3 多維數(shù)組41
5.2 向量42
5.3 空數(shù)組和空向量45
5.4 調(diào)試打印46
5.5 復制數(shù)組和向量47
第6章 使用基本類型48
6.1 非十進制數(shù)字基數(shù)48
6.2 數(shù)字字面量中的下劃線50
6.3 指數(shù)表示法50
6.4 各種有符號整數(shù)51
6.5 無符號整數(shù)類型53
6.6 目標相關(guān)的整數(shù)類型54
6.7 類型推斷55
6.8 浮點數(shù)值類型57
6.9 顯式轉(zhuǎn)換58
6.10 數(shù)字字面量的類型后綴59
6.11 所有數(shù)值類型60
6.12 布爾值和字符61
6.13 空元組62
6.14 數(shù)組和向量類型63
6.15 常數(shù)64
6.16 發(fā)現(xiàn)表達式的類型64
第7章 枚舉情況66
7.1 枚舉66
7.2 match構(gòu)造68
7.3 關(guān)系運算符和枚舉69
7.4 處理所有情況70
7.4.1 對數(shù)字使用match71
7.4.2 數(shù)據(jù)枚舉72
7.4.3 “match”表達式74
7.4.4 在match結(jié)構(gòu)中使用守衛(wèi)75
第8章 使用異構(gòu)數(shù)據(jù)結(jié)構(gòu)76
8.1 元組76
8.2 結(jié)構(gòu)77
8.3 元組結(jié)構(gòu)80
8.4 詞法約定80
第9章 定義函數(shù)82
9.1 定義和調(diào)用函數(shù)82
9.1.1 使用后定義的函數(shù)83
9.1.2 函數(shù)屏蔽其他函數(shù)83
9.1.3 將參數(shù)傳遞給函數(shù)85
9.1.4 按值傳遞參數(shù)86
9.2 從函數(shù)返回值86
9.2.1 提前退出87
9.2.2 返回多個值89
9.3 如何更改屬于調(diào)用者的變量90
9.4 通過引用傳遞參數(shù)91
9.4.1 使用引用92
9.4.2 引用的可變性93
第10章 定義泛型函數(shù)和結(jié)構(gòu)95
10.1 對泛型函數(shù)的需求95
10.2 定義和使用泛型函數(shù)96
10.3 推斷參數(shù)類型97
10.4 定義和使用泛型結(jié)構(gòu)98
10.4.1 泛型機制99
10.4.2 泛型數(shù)組和向量101
10.4.3 泛型枚舉101
10.5 錯誤處理103
10.6 枚舉標準實用程序函數(shù)104
第11章 分配內(nèi)存106
11.1 各種分配106
11.1.1 線性尋址107
11.1.2 靜態(tài)分配108
11.1.3 棧分配109
11.1.4 堆分配114
11.2 與C和C++的相似性117
11.3 裝箱與拆箱117
11.4 寄存器分配119
第12章 數(shù)據(jù)實現(xiàn)120
12.1 探索對象的大小120
12.1.1 use指令121
12.1.2 基本類型的大小122
12.2 基本類型的表示122
12.3 字節(jié)在內(nèi)存中的位置123
12.4 復合數(shù)據(jù)類型的大小125
12.5 向量分配125
第13章 定義閉包128
13.1 對“一次性”函數(shù)的需求128
13.2 捕獲環(huán)境129
13.3 閉包130
13.4 其他例子132
第14章 使用可變字符串134
14.1 靜態(tài)字符串134
14.2 動態(tài)字符串136
14.3 字符串的實現(xiàn)137
14.4 創(chuàng)建字符串139
14.5 連接字符串140
第15章 范圍和切片142
15.1 范圍142
15.2 將序列傳遞給函數(shù)144
15.3 切片145
15.4 切片操作147
15.5 超出范圍的切片149
15.6 可變切片149
15.7 開放式范圍和切片操作150
第16章 使用迭代器152
16.1 字符串字符152
16.2 掃描字符串153
16.3 在for循環(huán)中使用迭代器155
16.3.1 不可變的迭代157
16.3.2 可變的迭代158
16.4 迭代器適配器:filter161
16.4.1 map迭代器適配器162
16.4.2 enumerate迭代器適配器163
16.5 迭代器消費者:any164
16.5.1 all迭代器消費者166
16.5.2 count迭代器消費者166
16.5.3 sum迭代器消費者166
16.5.4 min和max迭代器消費者167
16.5.5 collect消費者168
16.6 迭代器鏈169
16.7 迭代器是“惰性的”170
第17章 輸入/輸出和錯誤處理方式172
17.1 命令行參數(shù)172
17.2 進程返回碼173
17.3 環(huán)境變量173
17.4 從控制臺讀取174
17.5 正確的運行時錯誤處理176
17.6 寫入控制臺179
17.7 將值轉(zhuǎn)換為字符串179
17.8 文件輸入/輸出180
17.9 處理文本文件182
第18章 使用trait184
18.1 對trait的需求184
18.2 trait的補救186
18.3 沒有trait界限的泛型函數(shù)188
18.4 trait作用域189
18.5 多函數(shù)trait190
18.6 方法192
18.7 \"self\"和\"Self\"關(guān)鍵字194
18.8 標準trait196
18.8.1 \"Iterator\" trait197
18.8.2 \"type\"關(guān)鍵字199
18.8.3 泛型trait200
18.8.4 使用關(guān)聯(lián)類型簡化泛型trait使用203
18.8.5 \"Iterator\"標準trait聲明206
18.9 使用泛型迭代器208
第19章 面向?qū)ο蟪绦蛟O計210
19.1 固有實現(xiàn)210
19.2 Rust面向?qū)ο蟮奶厥庑?13
19.3 可變方法216
19.4 構(gòu)造函數(shù)217
19.5 組合而不是繼承218
19.6 組合的內(nèi)存使用情況220
19.6.1 靜態(tài)分發(fā)221
19.6.2 動態(tài)分發(fā)223
19.6.3 trait引用的實現(xiàn)224
19.6.4 靜態(tài)分發(fā)與動態(tài)分發(fā)226
第20章 標準庫集合228
20.1 集合228
20.2 測量執(zhí)行時間229
20.3 執(zhí)行任意插入和移除230
20.4 隊列231
20.5 鏈表234
20.6 二叉堆235
20.7 有序集和無序集236
20.8 有序字典和無序字典239
20.9 C++和Rust中的集合240
第21章 丟棄、移動和復制241
21.1 確定性析構(gòu)241
21.2 所有權(quán)243
21.3 析構(gòu)函數(shù)244
21.4 賦值語義248
21.4.1 復制與移動性能對比250
21.4.2 移動和銷毀對象252
21.4.3 對復制語義的需要254
21.4.4 克隆對象255
21.4.5 使類型可克隆或可復制257
第22章 借用和生命周期259
22.1 所有權(quán)和借用259
22.2 對象生命周期260
22.3 關(guān)于借用的錯誤262
22.3.1 如何防止“丟棄后使用”錯誤264
22.3.2 如何防止“別名更改后使用”錯誤265
22.4 多重借用的可能情況266
22.5 使用塊來限制借用作用域268
22.6 返回引用對生命周期說明符的需求269
22.6.1 生命周期說明符的用法和意義271
22.6.2 檢查生命周期說明符的有效性273
22.6.3 使用調(diào)用函數(shù)的生命周期說明符276
第23章 關(guān)于生命周期的更多信息279
23.1 生命周期省略279
23.2 面向?qū)ο缶幊痰纳芷谑÷?80
23.3 結(jié)構(gòu)對生命周期說明符的需要281
23.4 可能的結(jié)構(gòu)生命周期說明符283
23.5 生命周期說明符的其他用途285