雖說語言的威力依使用者本身的修為高低而定,但不同語言本身的設(shè)計又有不同。
若讓用Java 寫寫操作系統(tǒng)內(nèi)核、Perl 寫寫驅(qū)動程序、C/C++寫寫web 應(yīng)用,都無異于舍近求遠(yuǎn),好刀只用上了刀背。
Lua 本身是以簡單優(yōu)雅為本,著眼于處理那些C 不擅長的任務(wù)。借助C/C++為其擴(kuò)展,Lua 可閃現(xiàn)無窮魅力。Lua 本身完全遵循ANSI C 而寫成,只要有C 編譯器的地方,Lua 便可發(fā)揮她的力量。Lua 不需要追求Python 那樣的大而全的庫,太多的累贅,反而
會破壞她的優(yōu)美。
語言的優(yōu)美,來自于使用者自己的感悟。Lua 的優(yōu)雅,也只有使用后才會明白。
揚(yáng)起帆,讓我們一同踏上Lua 的學(xué)習(xí)之旅……
目錄.............................................................................................................................................. iii
第一篇語言................................................................................................................................. 1
第0 章序言................................................................................................................................. 1
0.1 序言.................................................................................................................................... 1
0.2 Lua的使用者....................................................................................................................... 2
0.3 Lua的相關(guān)資源................................................................................................................... 3
0.4 本書的體例........................................................................................................................ 3
0.5 關(guān)于本書............................................................................................................................ 3
0.6 感謝.................................................................................................................................... 4
第1 章起點................................................................................................................................. 5
1.1 Chunks................................................................................................................................. 5
1.2 全局變量............................................................................................................................ 7
1.3 詞法約定............................................................................................................................ 7
1.4 命令行方式........................................................................................................................ 7
第2 章類型和值......................................................................................................................... 9
2.1 Nil ........................................................................................................................................ 9
2.2 Booleans .............................................................................................................................. 9
2.3 Numbers............................................................................................................................. 10
2.4 Strings ................................................................................................................................ 10
2.5 Functions ........................................................................................................................... 12
2.6 Userdata and Threads ........................................................................................................ 12
第3 章表達(dá)式........................................................................................................................... 13
3.1 算術(shù)運(yùn)算符...................................................................................................................... 13
3.2 關(guān)系運(yùn)算符...................................................................................................................... 13
3.3 邏輯運(yùn)算符...................................................................................................................... 13
3.4 連接運(yùn)算符...................................................................................................................... 14
3.5 優(yōu)先級.............................................................................................................................. 15
3.6 表的構(gòu)造........................................................................................................................... 15
第4 章基本語法....................................................................................................................... 18
4.1 賦值語句.......................................................................................................................... 18
4.2 局部變量與代碼塊(block )......................................................................................... 19
4.3 控制結(jié)構(gòu)語句.................................................................................................................. 20
4.4 break和return語句............................................................................................................. 23
第5 章 函數(shù)............................................................................................................................... 24
5.1 返回多個結(jié)果值.............................................................................................................. 25
5.2 可變參數(shù)........................................................................................................................... 27
5.3 命名參數(shù).......................................................................................................................... 28
第6 章 再論函數(shù)....................................................................................................................... 30
6.1 閉包.................................................................................................................................. 32
6.2 非全局函數(shù)...................................................................................................................... 34
6.3 正確的尾調(diào)用(Proper Tail Calls )............................................................................... 36
第7 章迭代器與泛型for........................................................................................................... 40
7.1 迭代器與閉包.................................................................................................................. 40
7.2 范性for的語義.................................................................................................................. 42
7.3 無狀態(tài)的迭代器.............................................................................................................. 43
7.4 多狀態(tài)的迭代器.............................................................................................................. 44
7.5 真正的迭代器.................................................................................................................. 45
第8 章 編譯·運(yùn)行·調(diào)試....................................................................................................... 47
8.1 require函數(shù)........................................................................................................................ 49
8.2 C Packages......................................................................................................................... 50
8.3 錯誤.................................................................................................................................. 51
8.4 異常和錯誤處理.............................................................................................................. 52
8.5 錯誤信息和回跟蹤(Tracebacks)................................................................................ 53
第9 章協(xié)同程序....................................................................................................................... 56
9.1 協(xié)同的基礎(chǔ)...................................................................................................................... 56
9.2 管道和過濾器.................................................................................................................. 58
9.3 用作迭代器的協(xié)同.......................................................................................................... 61
9.4 非搶占式多線程.............................................................................................................. 63
第10 章 完整示例..................................................................................................................... 68
10.1 Lua作為數(shù)據(jù)描述語言使用........................................................................................... 68
10.2 馬爾可夫鏈算法............................................................................................................ 71
第二篇 tables與objects............................................................................................................... 75
第11 章 數(shù)據(jù)結(jié)構(gòu)..................................................................................................................... 76
11.1 數(shù)組................................................................................................................................ 76
11.2 陣和多維數(shù)組................................................................................................................ 77
11.3 鏈表................................................................................................................................ 78
11.4 隊列和雙端隊列............................................................................................................ 78
11.5 集合和包........................................................................................................................ 80
11.6 字符串緩沖.................................................................................................................... 80
第12 章 數(shù)據(jù)文件與持久化..................................................................................................... 84
12.1 序列化.......
第13 章 Metatables and Metamethods ...................................................................................... 92
13.1 算術(shù)運(yùn)算的Metamethods............................................................................................... 92
13.2 關(guān)系運(yùn)算的Metamethods............................................................................................... 95
13.3 庫定義的Metamethods................................................................................................... 96
13.4 表相關(guān)的Metamethods................................................................................................... 97
第14 章環(huán)境........................................................................................................................... 103
14.1 使用動態(tài)名字訪問全局變量...................................................................................... 103
14.2 聲明全局變量............................................................................................................... 104
14.3 非全局的環(huán)境.............................................................................................................. 106
第15 章 Packages .................................................................................................................... 109
15.1 基本方法...................................................................................................................... 109
15.2 私有成員(Privacy)...................................................................................................111
15.3 包與文件.......................................................................................................................112
15.4 使用全局表...................................................................................................................113
15.5 其他一些技巧(Other Facilities)...............................................................................115
第16 章 面向?qū)ο蟪绦蛟O(shè)計....................................................................................................118
16.1 類...................................................................................................................................119
16.2 繼承.............................................................................................................................. 121
16.3 多重繼承...................................................................................................................... 122
16.4 私有性(privacy )...................................................................................................... 125
16.5 Single-Method的對象實現(xiàn)方法................................................................................... 127
第17 章 Weak表...................................................................................................................... 128
17.1 記憶函數(shù)...................................................................................................................... 130
17.2 關(guān)聯(lián)對象屬性.............................................................................................................. 131
17.3 重述帶有默認(rèn)值的表.................................................................................................. 132
第三篇 標(biāo)準(zhǔn)庫......................................................................................................................... 134
第18 章 數(shù)學(xué)庫....................................................................................................................... 135
第19 章 Table庫...................................................................................................................... 136
19.1 數(shù)組大小....................................................................................................................... 136
19.2 插入/刪除..................................................................................................................... 137
19.3 排序.............................................................................................................................. 137
第20 章 String庫..................................................................................................................... 140
20.1 模式匹配函數(shù).............................................................................................................. 141
20.2 模式.............................................................................................................................. 143
20.3 捕獲(Captures)........................................................................................................ 146
20.4 轉(zhuǎn)換的技巧(Tricks of the Trade)............................................................................ 151
第21 章 IO庫........................................................................................................................... 157
21.1 簡單I/O模式................................................................................................................. 157
21.2 完全I(xiàn)/O 模式......
第22 章操作系統(tǒng)庫............................................................................................................... 165
22.1 Date和Time ................................................................................................................... 165
22.2 其它的系統(tǒng)調(diào)用.......................................................................................................... 167
第23 章 Debug庫..................................................................................................................... 169
23.1 自省(Introspective)................................................................................................. 169
23.2 Hooks............................................................................................................................. 173
23.3 Profiles........................................................................................................................... 174
第四篇 C API ........................................................................................................................... 177
第24 章 C API縱覽................................................................................................................. 178
24.1 第一個示例程序.......................................................................................................... 179
24.2 堆棧.............................................................................................................................. 181
24.3 C API的錯誤處理......................................................................................................... 186
第25 章擴(kuò)展你的程序........................................................................................................... 188
25.1 表操作.......................................................................................................................... 189
25.2 調(diào)用Lua函數(shù)................................................................................................................ 193
25.3 通用的函數(shù)調(diào)用.......................................................................................................... 195
第26 章 調(diào)用C函數(shù)................................................................................................................. 198
26.1 C 函數(shù)........................................................................................................................... 198
26.2 C 函數(shù)庫....................................................................................................................... 200
第27 章撰寫C函數(shù)的技巧..................................................................................................... 203
27.1 數(shù)組操作...................................................................................................................... 203
27.2 字符串處理.................................................................................................................. 204
27.3 在C函數(shù)中保存狀態(tài).................................................................................................... 207
第28 章 User-Defined Types in C ........................................................................................... 212
28.1 Userdata ......................................................................................................................... 212
28.2 Metatables...................................................................................................................... 215
28.3 訪問面向?qū)ο蟮臄?shù)據(jù).................................................................................................. 217
28.4 訪問數(shù)組...................................................................................................................... 219
28.5 Light Userdata ............................................................................................................... 220
第29 章 資源管理................................................................................................................... 222
29.1 目錄迭代器.................................................................................................................. 222
29.2 XML解析...................................................................................................................... 225