Lua程序设计

罗伯拖·鲁萨利姆斯奇 (Roberto Ierusalimschy)

出版时间

2018-07-01

ISBN

9787121338045

评分

★★★★★

标签

编程

书籍介绍
作为Lua语言作者亲笔撰写的权威指南,本书最独特之处在于它不满足于教人「如何使用Lua」,而是把这门语言的设计哲学与实现原理摊开给你看。读者普遍反馈:它既像一本扎实的语言入门,又像一部可反复查阅的API手册,二者兼得实属难得。书中对元表、协程、垃圾回收、C语言API等高级特性的系统讲解,配合大量贴近实战的代码片段,让读者真正理解「为什么这样设计」而非「照抄即可」。不过它并不适合零编程基础的读者,也偶有翻译与排版瑕疵——这些都需要读者带着一定经验与耐心去读。如果你追求的是对一门轻量脚本语言从表象到内核的透彻理解,这本书几乎无可替代。
作者简介
罗伯拖·鲁萨利姆斯奇(Roberto Ierusalimschy) Lua 语言的首席架构师,从1993年 Lua 语言诞生起即进行 Lua 语言的开发工作,目前是巴西 PUC-Rio(the Pontifical Catholic University of Rio de Janeiro)大学计算机科学专业的助理教授,主要从事编程语言的设计和实现工作。
AI导读
核心看点
  • Lua作者亲自撰写,权威讲解语言基础与高级特性
  • 涵盖Lua 5.3新特性,如整型、位运算及瞬表
  • 系统讲解C语言API,深入剖析Lua与宿主交互
读者共识
  • 内容简洁有力,是学习Lua最权威且全面的教材
  • 适合有编程基础者,零基础读者阅读门槛较高
  • C与Lua交互部分讲解清晰,对工程实践极有帮助
精彩摘录
  • "lua_call 函数完成一次无保护的调用,它类似于 lua_pcall,不过在发生错误时,它会传播错误,而非返回错误代码。在一个应用程序中编写主函数时,不应使用lua_call,因为这样需要捕获所有的错误。而编写C函数时,通常可以用lua_call。若有错误发生,只需将错误留下。 当一个 C 函数从 Lua 收到一个字符串参数时,必须遵守两条规则:不要在访问字符串时从栈中弹出它,不要修改字符串。 当一个 C 函数需要创建一个字符串返回给 Lua 时,C 代码还必须处理字符串缓冲的分配的释放、缓冲溢出等问题。"
  • "这个函数有点类似于 C 函数 sprintf,但是无须提供这个新字符串的缓冲。Lua 会动态地创建一个足够大的缓冲来存放字符串,确保不会有缓冲溢出等问题。这个函数会将结果字符串压入栈中,并返回一个指向它的指针。当前,这个函数接受的指示符只有:%%(字符%)、%s(字符串)、%d(整数)、%f(Lua 中的数字,即双精度浮点数)以及%c(接受一个整数,并将其格式化为一个字符)。除此之外,它不接受任何例如宽度或精度选项"
  • "通过这些函数,就无须再关心缓冲的分配、溢出等细节了。此外,这种连接算法也非常高效。"
  • "在调用setDefault后,任何对tab中存在字段的访问都将调用它的__index元方法,而这个元方法会返回0(这个元方法中d的值)."
  • "After the call to setDefault, any access to an absent eld in tab calls its __index metamethod, which returns zero (the value of d for this metamethod)."
  • "local function iter(a, i) i = i + 1 local v = a[i] if v then return i, v end end function ipairs(a) return iter, a, 0 end </代码结束>"
  • "在Lua中,函数是一种“第一类值”,它们具有特定的词法域。 第一类值是什么意思呢?就是说在Lua中函数与其他传统类型的值有着相同的权利。函数可以存储到变量中,也可以作为实参传给其他函数,还可以作为函数的返回值。"
  • "一个函数定义就是一个语句(准确地说是一个赋值语句),这种语句创造了一种类型为函数的值"
目录
第 1 部分 语言基础 1
1 Lua 语言入门 2
1.1 程序段 3
1.2 一些词法规范 5
1.3 全局变量 7

显示全部
用户评论
博大精深,还有很多细节没明白,过阵子再回来看
lua这语言总感觉你看这本书和看个快速入门的教程文档没太大区别,时间充裕可以看一下。
学,有很多影子就是
不时翻翻 总有新的体会
前边很平淡,后面才精彩
很喜欢这个封面。恰到好处的译注,对于可能翻译不准确的地方给出原文,可以看出是非常用心的译著。
非常清晰. 即使一众语言书中, 也算是简洁清晰的范例. 一些内置函数给了实现, 比如package.searchpath. 虽然一道练习也没做, 但是感觉练习题也不错.
简单的lua
这本书比最早看的第二版好多了,内容更加丰富,感觉翻译上也更顺一些。学习Lua这门语言好像找不到更合适的书推荐了,不过还是要吐槽一下,这本书并不太适合没有编程基础的人阅读。
下载
收藏