第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ù)運(yùn)算8
2.1 整數(shù)加法8
2.2 整數(shù)之間的其他運(yùn)算9
2.3 浮點(diǎn)運(yùn)算10
2.4 語句序列11
2.5 分?jǐn)嘧置媪孔址?2
第3章 命名對(duì)象14
3.1 將名稱與值相關(guān)聯(lián)14
3.2 可變變量16
3.3 未變化的可變變量17
3.4 未初始化的變量18
3.5 前導(dǎo)下劃線19
3.6 布爾值20
3.7 布爾表達(dá)式22
3.8 賦值中的類型一致性23
3.9 類型和可變性的改變24
3.10 賦值算術(shù)運(yùn)算符25
3.11 使用標(biāo)準(zhǔn)庫的函數(shù)25
第4章 控制執(zhí)行流27
4.1 條件語句(if)27
4.2 條件表達(dá)式29
4.3 條件循環(huán)(while)30
4.4 無限循環(huán)(loop)32
4.5 計(jì)數(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 復(fù)制數(shù)組和向量47
第6章 使用基本類型48
6.1 非十進(jìn)制數(shù)字基數(shù)48
6.2 數(shù)字字面量中的下劃線50
6.3 指數(shù)表示法50
6.4 各種有符號(hào)整數(shù)51
6.5 無符號(hào)整數(shù)類型53
6.6 目標(biāo)相關(guān)的整數(shù)類型54
6.7 類型推斷55
6.8 浮點(diǎn)數(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)表達(dá)式的類型64
第7章 枚舉情況66
7.1 枚舉66
7.2 match構(gòu)造68
7.3 關(guān)系運(yùn)算符和枚舉69
7.4 處理所有情況70
7.4.1 對(duì)數(shù)字使用match71
7.4.2 數(shù)據(jù)枚舉72
7.4.3 “match”表達(dá)式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 返回多個(gè)值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 對(duì)泛型函數(shù)的需求95
10.2 定義和使用泛型函數(shù)96
10.3 推斷參數(shù)類型97
10.4 定義和使用泛型結(jié)構(gòu)98
10.4.1 泛型機(jī)制99
10.4.2 泛型數(shù)組和向量101
10.4.3 泛型枚舉101
10.5 錯(cuò)誤處理103
10.6 枚舉標(biāo)準(zhǔn)實(shí)用程序函數(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ù)實(shí)現(xiàn)120
12.1 探索對(duì)象的大小120
12.1.1 use指令121
12.1.2 基本類型的大小122
12.2 基本類型的表示122
12.3 字節(jié)在內(nèi)存中的位置123
12.4 復(fù)合數(shù)據(jù)類型的大小125
12.5 向量分配125
第13章 定義閉包128
13.1 對(duì)“一次性”函數(shù)的需求128
13.2 捕獲環(huán)境129
13.3 閉包130
13.4 其他例子132
第14章 使用可變字符串134
14.1 靜態(tài)字符串134
14.2 動(dòng)態(tài)字符串136
14.3 字符串的實(shí)現(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 迭代器消費(fèi)者:any164
16.5.1 all迭代器消費(fèi)者166
16.5.2 count迭代器消費(fèi)者166
16.5.3 sum迭代器消費(fèi)者166
16.5.4 min和max迭代器消費(fèi)者167
16.5.5 collect消費(fèi)者168
16.6 迭代器鏈169
16.7 迭代器是“惰性的”170
第17章 輸入/輸出和錯(cuò)誤處理方式172
17.1 命令行參數(shù)172
17.2 進(jìn)程返回碼173
17.3 環(huán)境變量173
17.4 從控制臺(tái)讀取174
17.5 正確的運(yùn)行時(shí)錯(cuò)誤處理176
17.6 寫入控制臺(tái)179
17.7 將值轉(zhuǎn)換為字符串179
17.8 文件輸入/輸出180
17.9 處理文本文件182
第18章 使用trait184
18.1 對(duì)trait的需求184
18.2 trait的補(bǔ)救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 標(biāo)準(zhǔn)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\"標(biāo)準(zhǔn)trait聲明206
18.9 使用泛型迭代器208
第19章 面向?qū)ο蟪绦蛟O(shè)計(jì)210
19.1 固有實(shí)現(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 動(dòng)態(tài)分發(fā)223
19.6.3 trait引用的實(shí)現(xiàn)224
19.6.4 靜態(tài)分發(fā)與動(dòng)態(tài)分發(fā)226
第20章 標(biāo)準(zhǔn)庫集合228
20.1 集合228
20.2 測量執(zhí)行時(shí)間229
20.3 執(zhí)行任意插入和移除230
20.4 隊(duì)列231
20.5 鏈表234
20.6 二叉堆235
20.7 有序集和無序集236
20.8 有序字典和無序字典239
20.9 C++和Rust中的集合240
第21章 丟棄、移動(dòng)和復(fù)制241
21.1 確定性析構(gòu)241
21.2 所有權(quán)243
21.3 析構(gòu)函數(shù)244
21.4 賦值語義248
21.4.1 復(fù)制與移動(dòng)性能對(duì)比250
21.4.2 移動(dòng)和銷毀對(duì)象252
21.4.3 對(duì)復(fù)制語義的需要254
21.4.4 克隆對(duì)象255
21.4.5 使類型可克隆或可復(fù)制257
第22章 借用和生命周期259
22.1 所有權(quán)和借用259
22.2 對(duì)象生命周期260
22.3 關(guān)于借用的錯(cuò)誤262
22.3.1 如何防止“丟棄后使用”錯(cuò)誤264
22.3.2 如何防止“別名更改后使用”錯(cuò)誤265
22.4 多重借用的可能情況266
22.5 使用塊來限制借用作用域268
22.6 返回引用對(duì)生命周期說明符的需求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)對(duì)生命周期說明符的需要281
23.4 可能的結(jié)構(gòu)生命周期說明符283
23.5 生命周期說明符的其他用途285