LUA程序设计(第2版) - [巴西] 莱鲁

LUA程序设计(第2版)

[巴西] 莱鲁

出版时间

2008-01-01

ISBN

9787121061875

评分

★★★★★
书籍介绍
周惟迪(www.zhouweidi.name),在少年时由于喜好计算机游戏而喜爱上计算机编程,对各类开发技术皆有涉猎。曾从事过2年游戏程序设计专业的教育工作,之后在上海Ubisoft工作,参与Splinter Cell 4(Xbox 360)、Rayman 4(Xbox 360)等项目开发。现就职于Epic Games China,从事MMO引擎,以及基于Unreal 3的MMO游戏开发。常在业余时间参与各种软件的开发,同时翻译过《Direct3D游戏编程入门教程》一书。
AI导读
核心看点
  • Lua语言设计优雅简洁,适合C系程序员入门动态语言。
  • 深入讲解元表与元方法,实现面向对象等高级特性。
  • 涵盖C与Lua交互细节,是嵌入式脚本开发的权威指南。
适合谁读
  • 有C语言基础,希望学习动态脚本语言的开发者。
  • 从事游戏开发、引擎扩展或嵌入式系统的程序员。
  • 需要编写高效脚本,追求极致性能的后端工程师。
读前提醒
  • 本书基于Lua 5.1,部分API在新版本中可能已变更。
  • 翻译质量一般,建议配合英文原版或源码对照阅读。
  • 重点阅读基础篇,交互篇按需查阅,无需逐字死磕。
读者共识
  • 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中函数与其他传统类型的值有着相同的权利。函数可以存储到变量中,也可以作为实参传给其他函数,还可以作为函数的返回值。"
  • "一个函数定义就是一个语句(准确地说是一个赋值语句),这种语句创造了一种类型为函数的值"
用户评论
翻译一般般,时过多年再看协程,原来这么多玩法
走马观花翻了一遍,翻译的实在是不怎么地,建议看英文原版。
写了好几个 ngx_lua 相关的项目,现在才正式看 Lua 程序语言相关的书,感觉春哥提供的那几个 API 接口,尤其是字符串正则部分的,用起来实在太幸福了!
协程讲的很好 比python 讲的好多了
迭代器和闭包讲解的很好。也算书看过了吧,不过这个语言阿,语言阿,没有工程实践不算熟悉语言。弄个啥工程实践实践呢?
介绍的是lua5.1的内容,由浅入深进行了全面介绍,对于初学者来说只需要把前面几章内容看明白就可以上手了。至于后面的章节可以等熟练使用lua之后再进行深入理解。期间一定要多写代码加深理解。
简明扼要,细致全面。
害,上海
看了第一部分进行了简单的入门 multithread,coroutine,table\list,自定义数据结构都很“黑科技” 但没项目经历还是难上手。先看看源码实现(高级数据结构、coroutine、和C的联系、VM实现)吧
工作相关会用到lua,需要较为全面的学习。而市面上的lua语言书,这本是最权威的。
收藏