Lua程序設計(第4版)

Lua程序設計(第4版)
定價:534
NT $ 422
 

內容簡介

本書由Lua語言作者親自撰寫,針對Lua語言本身由淺入深地從各個方面進行了完整和細緻的講解。作為4版,本書主要針對的是Lua5.3,這是本書撰寫時Lua語言的新版本。

作者從語言使用者的角度出發,講解了語言基礎、編程實操、高級特性及C語言API等四個方面的內容,既有Lua語言基本數據類型、輸入輸出、控制結構等基礎知識,也有對模塊、閉包、元表、協程、延續、反射、環境、垃圾回收、函數式編程、面向對象編程、C語言API等高級特性的系統講解,還有對Lua5.3中引入的整型、位運算、瞬表、延續等新功能的細緻說明。





 

作者介紹

Roberto Ierusalimschy是Lua語言的首席架構師,從1993年Lua語言誕生起即進行Lua語言的開發工作,目前是巴西PUC-Rio(the Pontifical Catholic University of Rio de Janeiro)大學電腦科學專業的一名助理教授,主要從事編程語言的設計和實現工作。梅隆魁,2013.4至今就職于中國民生銀行總行信息科技部,擅長 於Java企業級開發、嵌入式系統/軟硬體、安卓逆向等方向,同時,對新技術也一直保有熱情。
 

目錄

第 1 部分語言基礎 1
1 Lua 語言入門 2
1.1 程式段     3
1.2 一些詞法規範   5
1.3 全域變數   7
1.4 類型和值   7
1.4.1 nil    8
1.4.2 Boolean   8
1.5 獨立解譯器    10
1.6 練習   12
2 小插曲:八皇后問題 13
2.1 練習   15
3 數值 17
3.1 數值常量     17
3.2 算數運算     19
3.3 關係運算     21
3.4 數學庫     21
3.4.1 亂數發生器  22
3.4.2 取整函數  22
3.5 表示範圍     24
3.6 慣例   25
3.7 運算子優先順序  26
3.8 相容性     27
3.9 練習   28
4 字串 30
4.1 字串常量    31
4.2 長字串/多行字串  33
4.3 強制類型轉換   34
4.4 字串標準庫   36
4.5 Unicode 編碼   39
4.6 練習   41
5 表 43
5.1 表索引     44
5.2 表構造器    46
5.3 陣列、清單和序列  48
5.4 遍歷表     50
5.5 安全訪問    52
5.6 表標準庫    53
5.7 練習   54
6 函數 56
6.1 多返回值   58
6.2 可變長參數函數  61
6.3 函數 table.unpack  64
6.4 正確的尾調用   65
6.5 練習   66
 7 輸入輸出 68
7.1 簡單 I/O 模型    68
7.2 完整 I/O 模型    72
7.3 其他文件操作   74
7.4 其他系統調用   75
7.4.1 運行系統命令  75
7.5 練習   77
8 補充知識 78
8.1 區域變數和代碼塊  78
8.2 控制結構    80
8.2.1 if then else  81
8.2.2 while   81
8.2.3 repeat    82
8.2.4 數值型 for  82
8.2.5 泛型 for   83
8.3 break、return 和 goto  84
8.4 練習   88
第 2 部分程式設計實操 90
9 閉包 91
9.1 函數是第一類值   92
9.2 非全域函數    94
9.3 詞法定界     96
9.4 小試函數式程式設計 100
9.5 練習   103
 10 模式匹配 105
10.1 模式匹配的相關函數  105
10.1.1 函數 string.find  105
10.1.2 函數 string.match       106
10.1.3 函數 string.gsub  107
10.1.4 函數 string.gmatch       107
10.2 模式   108
10.3 捕獲   112
10.4 替換   114
10.4.1 URL 編碼  . 116
10.4.2 定位字元展開  118
10.5 訣竅   119
10.6 練習   123
11 小插曲:出現頻率最高的單詞 124
11.1 練習   126
12 日期和時間 128
12.1 函數 os.time   129
12.2 函數 os.date   130
12.3 日期和時間處理   132
12.4 練習   134
13 位元和位元組 135
13.1 位運算     135
13.2 無符號整型數   136
13.3 打包和解包二進位資料   139
13.4 二進位檔案    142
13.5 練習   144
 14 資料結構 145
14.1 陣列   146
14.2 矩陣及多維陣列  146
14.3 鏈表   149
14.4 佇列及雙端佇列   150
14.5 反向表     151
14.6 集合與包     152
14.7 字串緩衝區   154
14.8 圖形   156
14.9 練習   158
15 資料檔案和序列化 159
15.1 資料檔案     160
15.2 序列化     162
15.2.1 保存不帶迴圈的表  165
15.2.2 保存帶有迴圈的表  167
15.3 練習   169
16 編譯、執行和錯誤 171
16.1 編譯   171
16.2 預編譯的代碼   175
16.3 錯誤   177
16.4 錯誤處理和異常   179
16.5 錯誤資訊和棧回溯  180
16.6 練習   182
17 模組和包 184
17.1 函數 require    185
17.1.1 模組重命名  187
 17.1.2搜索路徑  188
17.1.3 搜索器   190
17.2 Lua 語言中編寫模組的基本方法     190
17.3 子模組和包    193
17.4 練習   194
第 3 部分語言特性 196
18 反覆運算器和泛型 for 197
18.1 反覆運算器和閉包   197
18.2 泛型 for 的語法   200
18.3 無狀態反覆運算器   201
18.4 按順序遍歷表   203
18.5 反覆運算器的真實含義  205
18.6 練習   206
19 小插曲:瑪律可夫鏈演算法 208
19.1 練習   211
20 元表和元方法 212
20.1 算數運算相關的元方法   213
20.2 關係運算相關的元方法   216
20.3 庫定義相關的元方法  217
20.4 表相關的元方法   219
20.4.1 __index 元方法   219
20.4.2 __newindex 元方法       220
20.4.3 具有預設值的表   221
20.4.4 跟蹤對表的訪問  . 222
20.4.5 唯讀的表  . 224
20.5 練習   225
 21 物件導向(Object-Oriented)程式設計 226
21.1 類(Class)    228
21.2 繼承(Inheritance)  . 230
21.3 多重繼承(MultipleInheritance)    232
21.4 私有性(Privacy)  235
21.5 單方法對象(Single-methodObject)   237
21.6 對偶表示(DualRepresentation)     238
21.7 練習   240
22 環境(Environment) 241
22.1 具有動態名稱的全域變數  242
22.2 全域變數的聲明   243
22.3 非全域環境    246
22.4 使用 _ENV     248
22.5 環境和模組    251
22.6 _ENV 和 load    252
22.7 練習   254
23 垃圾收集 255
23.1 弱引用表    . 255
23.2 記憶函數(MemorizeFunction)     257
23.3 物件屬性(Object Attribute)       259
23.4 回顧具有預設值的表  260
23.5 瞬表(Ephemeron Table)  261
23.6 析構器(Finalizer) 262
23.7 垃圾收集器    266
23.8 控制垃圾收集的步長(Pace)    267
23.9 練習   268
 24 協程(Coroutine) 270
24.1 協程基礎    . 270
24.2 哪個協程佔據主迴圈  273
24.3 將協程用作反覆運算器  276
24.4 事件驅動式程式設計  .279
24.5 練習   284
25 反射(Reflection) 285
25.1 自省機制(IntrospectiveFacility)    286
25.1.1 訪問區域變數  288
25.1.2 訪問非區域變數 289
25.1.3 訪問其他協程  291
25.2 鉤子(Hook)   292
25.3 調優(Profile)   293
25.4 沙箱(Sandbox)  296
25.5 練習   300
26 小插曲:使用協程實現多執行緒 301
26.1 練習   306
第 4 部分 C 語言 API 307
27 C 語言 API 總覽 308
27.1 第一個示例    309
27.2 棧   312
27.2.1 壓入元素  313
27.2.2 查詢元素  314
27.2.3 其他棧操作  317
27.3 使用 C API 進行錯誤處理  320
 27.3.1處理應用代碼中的錯誤     320
27.3.2 處理庫代碼中的錯誤      321
27.4 記憶體分配    322
27.5 練習   324
28 擴展應用 325
28.1 基礎知識    325
28.2 動作表     327
28.2.1 一些簡便方法  331
28.3 調用 Lua 函數   333
28.4 一個通用的調用函數  334
28.5 練習   338
29 在 Lua 中調用 C 語言 339
29.1 C 函數      339
29.2 延續(Continuation)  342
29.3 C 模組      345
29.4 練習   347
30 編寫 C 函數的技巧 349
30.1 陣列操作    349
30.2 字串操作    351
30.3 在 C 函數中保存狀態  355
30.3.1 註冊表   355
30.3.2 上值    358
30.3.3 共用的上值(Shared upvalue)    361
30.4 練習   362
 31 C語言中的使用者自訂類型 363
31.1 使用者資料(Userdata)  364
31.2 元表(Metatable)  367
31.3 物件導向訪問   370
31.4 陣列訪問    372
31.5 羽量級使用者資料  373
31.6 練習   375
32 管理資源 376
32.1 目錄反覆運算器    376
32.2 XML 解析器   380
32.3 練習   390
33 執行緒和狀態 392
33.1 多執行緒     392
33.2 Lua 狀態    397
33.3 練習   406
 
網路書店 類別 折扣 價格
  1. 新書
    79
    $422