登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』Lua程序设计(第4版)

書城自編碼: 3212320
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: [巴西]Roberto Ierusalimschy[罗伯拖?
國際書號(ISBN): 9787121338045
出版社: 电子工业出版社
出版日期: 2018-07-01


書度/開本: 16开 釘裝: 平装

售價:NT$ 579

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
中国国家历史(叁拾叁)
《 中国国家历史(叁拾叁) 》

售價:NT$ 381.0
嫁金钗(全2册)
《 嫁金钗(全2册) 》

售價:NT$ 420.0
全球视野下的高等教育
《 全球视野下的高等教育 》

售價:NT$ 448.0
“逆觉体证”与“理一分殊”:论现代新儒学之内在发展(复旦哲学·中国哲学丛书)
《 “逆觉体证”与“理一分殊”:论现代新儒学之内在发展(复旦哲学·中国哲学丛书) 》

售價:NT$ 605.0
游戏与人
《 游戏与人 》

售價:NT$ 314.0
向上社交
《 向上社交 》

售價:NT$ 381.0
手作简约百搭的品牌帆布包
《 手作简约百搭的品牌帆布包 》

售價:NT$ 330.0
民族的重塑:为什么我们惧怕和需要民族
《 民族的重塑:为什么我们惧怕和需要民族 》

售價:NT$ 364.0

建議一齊購買:

+

NT$ 449
《 OpenResty完全开发指南:构建百万级别并发的Web应用 》
+

NT$ 579
《 etcd技术内幕 》
+

NT$ 709
《 Node.js:来一打 C++ 扩展 》
+

NT$ 748
《 高伸缩性系统:Erlang/OTP大型分布式容错设计 》
+

NT$ 644
《 Nginx Lua开发实战 》
+

NT$ 353
《 Lua设计与实现 》
編輯推薦:
本书由Lua语言作者亲自撰写,针对Lua语言本身由浅入深地从各个方面进行了完整和细致的讲解。所有与Lua语言打交道的人均能从本书受益。
內容簡介:
本书由 Lua 语言作者亲自撰写,针对 Lua 语言本身由浅入深地从各个方面进行了完整和细致的讲解。作为第 4 版,本书主要针对的是 Lua 5.3,这是本书撰写时 Lua 语言的*版本。作者从语言使用者的角度出发,讲解了语言基础、编程实操、高级特性及 C 语言 API 等四个方面的内容,既有 Lua 语言基本数据类型、输入输出、控制结构等基础知识,也有对模块、闭包、元表、协程、延续、反射、环境、垃圾回收、函数式编程、面向对象编程、C 语言 API 等高级特性的系统讲解,还有对 Lua 5.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 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 输入输出 68
7.1 简单 IO 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.2 完整 IO 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10310 模式匹配 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 二进制文件 . . . . . . . . . . . . . . . . . . . . . . .
內容試閱
推荐序一
Lua 这种类似于胶水的语言在游戏行业被广泛应用。我已经在游戏行业摸爬滚打了 很多年,对游戏行业的变化之快深有体会:游戏策划时常更改设计是行业特点,工程师必须 把不要写死,要能热更这句话刻在心里。因此在做开发时,大家喜欢把逻辑放在 Lua 这 种嵌入型语言中,一方面是因为 Lua 性能好,另一方面主流引擎都支持通过推送 Lua 脚本来 实现热更新,这样在修改 Bug 或者更新内容时,用户就不需要重新下载整个游戏安装包。并 且 Lua 上手难度不高,所以很多初入游戏行业的程序员往往先学 Lua。但是,Lua 的中文学 习资料很有限,社区上的知识比较零碎,为数不多的英文书翻译本也质量平平或其中所讲的 版本已经过时,增加了初学者系统学习 Lua 的难度。所以,现在我们手中的这本用心打磨的 译本,无疑是初学者的福音。 翻译一本有用的但不蹭热点的书,就像我们开发一款源自内心的喜爱却不跟风的游戏, 也许不会成为爆款,但是总会对得起自己,也总能收获一群用户的喜爱。这本《Lua 程序设 计(第 4 版)》,体现了译者的傻劲不追捧热点、专注自己想做的事情。这种傻劲 是这个时代稀缺的。然而读者也好,游戏用户也好,往往就喜欢这种傻人和他们的傻 劲,我真心希望这样的傻人傻劲能多一些。 译者还计划要做一个 Lua 的社区,欢迎大家关注,也欢迎推荐给身边的朋友,独乐乐不 如众乐乐。最后,开卷有益,祝大家学习愉快。
焦洋 盖娅互娱 CTO
推荐序二
这几年来,由于阅读 Lua 虚拟机实现源码的缘故,我深入了解了 Lua 的很多内部实现原 理。Lua 作为一门诞生已经超过 20 年的语言,在设计上是非常克制的,以 Lua 5.1.4 版本来 说,这个版本是 Lua 发展了十几年之后稳定使用了很长时间的版本,其解释器加上周边的库 函数等不过就是一万多行的代码。 在设计上,Lua 语言从一开始就把简单、高效、可移植、可嵌入、可扩展等作为自己的 目标。打一个可能不是太恰当的比方,Lua 语言专注于做一个配角,作为胶水语言来辅助像 C、C 这样的主角来更好地完成工作,当其他语言在前面攻城拔寨时,Lua 语言在后方实 现自己辅助的作用。现在大部分主流编程语言都在走大而全的路线,在号称学会某一门语言 就能成为所谓的全栈工程师的年代,Lua 语言始终恪守本分地做好胶水语言的本职 工作,不得不说是一个异类的存在。 上善若水,水善利万物而不争,这大概是我能想到的最适合用于来描述 Lua 语言设计 哲学的句子。 然而,我发现想找到一本关于 Lua 语言本身设计相关的书籍却很难。打开任何一个电商 网站,以关键字Lua来进行搜索,能找到的相关书籍大多是如何基于 Lua 做应用开发,如 游戏、OpenResty 等。在 2008 年,国内曾引进并翻译了《Lua 程序设计(第 2 版)》。然而, 这一本书已经绝版不再印刷,而且 Lua 在这些年里也发生了不少的变化,从当时的 5.1 版本 到了现在的 5.3 版本,也在更多领域有了广泛的应用。此时,引进并且翻译最新版本的《Lua 程序设计(第 4 版)》就显得很有必要了。 推荐那些常年要与 Lua 打交道的应用开发者都读一下这本由 Lua 创作者亲自编写的 《Lua 程序设计(第 4 版)》,系统了解一下这门精致的语言,这不但对于深入理解并且使用 好 Lua 有帮助,同时其设计哲学和思想也能在某种程度上开阔我们的视野。
Codedump 《Lua 设计与实现》作者
译者序
2016 年 2 月,时年 27 岁的我因春节期间暴饮暴食导致急性胰腺炎入院治疗两个余月。 当真正别无选择地终日躺在病床上时,就似乎不可避免地开始面对和尝试回答那个亘古不变 的问题:假设有一天我死了,究竟能够留下什么? Lua 语言从 1993 年诞生至今已 20 余年,是开源嵌入式脚本语言领域中一门独树一帜 的语言,在包括嵌入式、物联网、游戏、游戏外挂、软件安全、逆向工程等领域中均具有 不可替代的重要地位和极为广泛的应用。截至 2017 年 7 月,Lua 语言在 IEEE Spectrum 编 程语言排行榜中名列第 21 位(http:spectrum.ieee.orgstaticinteractive-the-topprogramming-languages-2017),在 TIOBE 排行榜中名列第 27 位(The TIOBE Programming Community index,https:www.tiobe.comtiobe-index)。近年来,除了游戏领域典型的应 用外,包括 Redis、NginxOpenResty、NMAP、WOW、OpenWRT、PhotoShop 等大量的著名 产品也均使用 Lua 作为其嵌入式脚本引擎,以供开发者进行功能扩展和二次开发等。伴随着 移动互联网、DevOps 等的迅猛发展,Lua 语言在包括热更新、不停机部署等的实现方面也提 供了一种现实的解决方案(例如银行等金融应用中某些采用 C 语言编写的性能密集型核心 交易逻辑)。在 Lua 语言多年的发展过程中,也有大量的第三方机构对 Lua 语言进行了多方 面的改进和增强,诸如 Lua JIT 等的发展也十分迅速。 除了语言本身的使用外,从语言的实现、原理、设计哲学等角度看,Lua 语言也是学习 编译原理、虚拟机、脚本引擎等的重要参考和现实依据,可以成为相关领域教科书式的典范, 在国外也一直是部分高校计算机专业开展相关课程时的重要学习对象之一。在游戏领域,深 入学习 Lua 语言后进行消化、吸收、优化、重构、增强甚至基于 Lua 语言的思想重新开发一 种脚本语言或一个脚本引擎的例子屡见不鲜;在软件安全领域,基于虚拟机的思想设计出的 各类混淆、VM 保护产品更是有无数的先例;在各种灰色产业中,Lua 语言也同样扮演了更 加鲜为人知的重要角色。 我在研究生期间学习嵌入式和游戏逆向领域的过程中涉猎了 Lua 语言,之后由于在工作 中需要编写 Nginx 和 Redis 的 Lua 脚本(Redis 的 Lua 脚本在原子性、执行效率等方面具有 显著优势)才开始对 Lua 语言进行深入的学习。然而,在学习 Lua 语言的过程中,我发现国内对 Lua 语言的应用仍主要集中在传统的游戏领域,市面上有限的几本在售书籍也主要针对 Lua 语言在游戏开发中的使用,并没有一本书从语言本身的维度进行系统性介绍。目前网络 上的各类中文资料、教程、手册也大多是碎片化的,而且面向的还主要是 Lua 语言的陈旧版 本。对于有一定专业素养的从业人员而言,通常可以通过文档或速成式的教程在数天或数周 内基本掌握一门语言,对于非计算机专业的开发人员或一般使用者则会难些。但我认为即便 只考虑专业从业者,也需要一本权威、系统且工具性的书籍对 Lua 语言进行全面的介绍,以 帮助实现低成本地快速学习和快速上手。此外,从事游戏逆向等软件安全领域的人士也有快 速建立对 Lua 语言认知甚至进行深入学习的必要。 2006 年左右,本书的英文第 2 版出版后,国内出版了其中文译本,但至今已经超过 10 年,且本书的英文第 3 版也已经对全书的内容进行了重大重构,最新的 Lua 5.3 也发生了较 大的变化,因此之前的中文第 2 版和网络上流传的影印版 PDF 均已经不能满足读者现有的 需求。在这样的情况下,加上机缘的巧合,我于 2016 年 11 月开始与电子工业出版社博文视 点的符隆美编辑一起联系了远在巴西的 Lua 语言的作者,并最终从国内诸多出版商和译者中 杀出重围,艰难地争取到了作者的翻译版授权。 目前 Lua 语言在国内的发展不像 Python 语言、R 语言等为人熟知,也不似 Go 语言等站 在风口浪尖,但 Lua 语言在国外却一直保持着持续性的演进,在过去 20 年间表现出了极为 强大的生命力(随便举一个嵌入式领域 OpenWrt 路由器操作系统的例子,目前在各大主流 路由器品牌或 KOS小博无线等商业 WIFI 服务商中均扮演着不可替代的重要作用)。我相信, 尽管略显小众,译文中也难免有值得商榷之处,这样一本针对 Lua 语言最新版本的权威、系 统性的中文译本都应该能够为游戏、嵌入式、物联网、逆向工程、软件安全、移动互联网、 C 语言核心系统开发工程师等诸多领域的学生、爱好者和从业人员提供些许帮助而这也 是我作为一名计算机行业从业人员的愿望。 在开始本书的翻译工作前,我自诩具有尚可的文字感知和表达能力,在多年的学习和工 作中也阅读过计算机行业多个不同领域的大量中英文文档,力图以信、达、雅的原则要 求自己,从一名计算机行业一线从业者的角度,在尽可能正确地理解了原著英文意思后,用 尽可能专业的语言进行表述,避免出现读者感觉还不如直接去看英本原版的情况。但是, 2017 年 4 月 20 日我拿到本书的部分原稿并开始着手翻译后,我发现在信、达、雅三者间 做好平衡着实不是一件易事。受精力和能力所限,我也并未在实际生产代码中使用过原著中 讲解的所有机制,所以译文中也一定会有诸多不妥、失误甚至错误,如果读者有任何意见或 建议可以直接通过我的邮箱(mlkui@163.com)或 QQ 读者交流群(QQ 群号:662640785) 联系我,我会虚心接受一切批评和指正。
最后,我要感谢我的父母、妻子及亲人们多年来给予的无限关心、支持和陪伴,你们是 我今天幸福生活的缔造者和组成者,也是我奋斗的根本动力和首要原因。 感谢中国民生银行、中国民生银行总行信息科技部的领导和同事们,尽管他们中的一些 已经离开。中国民生银行是我走上社会后的第一个工作单位,感谢他们自我 2012 年入行实 习以来在工作和生活上给予的无限支持、认可

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.