Lua程序设计(第二版)『不完全』勘误
2013-07-05
一星给原作:好书,问题不多。
译作太糟糕,翻译、语法错误太多就不多说了,代码问题也不多说,竟然有几处认知错误,糟蹋好书不如去吃屎;举几个例子:
P130 L-16:若误改了一个全局变量也没什么 -> 不存在误改全局变量的风险
P216 L15:如果发生内存分配错误,其他大多数函数都会抛出异常。 -> 而且,其他函数大多只在分配内存失败时抛出异常。
P250 L-6:另一种面向对象写法是使用常规的数组访问写法。 -> 除了面向对象记法,还可用常规数组记法来访问我们的数组。
P251 译注1:因为在Lua代码中无法访问userdata的元表。 ->
狗屁,若如此,则第一行代码就是错的;实际缘由是OO实现的库中没有这3个函数,他们是userdata的元表中的方法。
P254 L-5:如果先打开目录,再调用lua_newuserdata就会引发一个错误,这样会丢失DIR结构。 -> 如果先打开目录,再调用lua_newuserdata时出错,就会丢失DIR结构。
P268 L15:由于C函数不能交出控制权,所以会带来一些限制。特别是在一个Lua循环中调用yield时,当函数交出控制权并再次恢复执行时,循环会再次调用这个函数。 -> C函数不能交出控制权,但我们可以规避这个限制,方法是在Lua的循环中调用它们(hshqcn注:英文句式为:通过...规避...限制)。这样一来,在该函数交出控制权、然后线程恢复后,循环会再次调用该函数(hshqcn注:C函数以return lua_yield(L, nres);方式退出后,其调用者协程-Lua-即被挂起,该协程恢复运行后仍在循环中)。
详见:
http://blog.chinaunix.net/uid-380521-id-3788179.html
另,如果说作为入门书,还是不错的。