代码块缩进混乱,少量注释未翻译
大量元表字段前缀错误:__误写为--
前言Pv、目录Pxv:tab 扩展 -> tab指的是制表符
P6 L18 而非想象中的块注释结尾 -> 而非块注释
目录Pxi和P7:ch 1.4 标题 dtand-slone -> stand-alone
P10 脚注3:1014 -> 10^14
P11 L11:Lua 你处理 -> Lua 帮你处理
P11 表2-1:提供表格 -> 换页符,tab -> 制表符
P12 L11:'\97lo \10\04923' -> '\97lo\10\04923',多一个空格
P23 L-4:那就是所有的table都可以构建成一样的,而构造式只是在table的初始化时刻发挥作用。 -> 啥意思啊
P27 L-13:交互 -> 交换
P35 L9:一个函数若只有一个参数 -> 一个函数(调用)若只有一个实际参数
P36 L6:若实参多余形参 -> 若实参多于形参
P40 L-2:下这个函数 -> 下面这个函数
P41 L-17:select函数解释错误,系英文版错误(参考手册)
P48 译注1:这两句(那段的前两句)直译为:技术上讲,在Lua中,闭包才是值,函数不是。函数本身是闭包的原型。
P52 L-4:不需要保存任何关于该函数的栈(stack)的信息了 -> 宾语不明了,最好像原文那样指明是主调函数
P71 L12:读函数 -> 读者的函数
P82 L11 L12:receive函数的非阻塞实现不会返回第三个结果partial,可调整阻塞实现与其一致。
P89:脚注1在哪儿了
P95 L5:“在C和Pascal”中,如何“可以使用Lua的table来实现数组和列表”?
L100 L-8:或 -> 并
P101 L-13:concast -> concat
P102 L2:concast -> concat
P108 L4:不可做量 -> 不可估量
P108 L6:转移 -> 转义
P108 L-16:这句话很不通顺。
P108 L-14:转移 -> 转义
P108 L-10:“由于,在字符串中...”:整句都是垃圾。
P108 L-9:“忽略所有长字符串开头的换行符”:只忽略第一个,因此此句歧义。
P113 脚注1:些设置 -> 这些设置
P120 L-4:任何对tab中存在字段的访问 -> 任何对tab中不存在字段的访问
P121 L-11:还有一种备忘录(memoize)元表的方法 -> memoize应为memorize:还有一种缓存元表的方法
P125 L-7:去掉『因此』
P127 L3:不过这种性能可以改变 -> 不过这种行为可以改变
P127 L3:由于...则... -> 这是什么句式?
P128 L6:知道自己是做什么的 -> C代码有职业?职责?:知道自己在做什么
P129 L2:完全没有涉及到元方法的调用 -> 在正常操作期间完全没有涉及到元方法的调用
P129 L13:看到...访问任何地方 -> 将看到...随处可用
P130 L-16:若误改了一个全局变量也没什么 -> 不存在误改全局变量的风险
P133 L3:允许以不同的形式来共享代码 -> 允许不同的群组共享代码
P133 L6:额外的技能 -> 额外的设施
P133 L7:很容易地通过这些规则 -> 简化对这些规则的采用
P133 L10:从...来看 -> 从...看来 or 以...来看
P136 L4:将其中所有的子串";;"替换成默认路径 -> 英文原文误:在其中所有的子串";;"中插入默认路径
P136 L5:"mydir/?.lua",并紧随默认路径 -> 英文原文误:"mydir/?.lua;<默认路径>;"
P136 L-11:其内部名称不是固定的, -> 可以不在内部限定其名子,或者
P139 L-14:,因为 -> 。
P144 L6:则能 -> 也能
P144 L7:即可 -> 可
P144 L15:。反之, -> ,反之亦然,
P145 L1:只能自定义 -> 自定义
P145 L-10:或调用一个 -> 并调用它的
P145 L-5:因此冒号 -> 冒号
P146 L16:可以很容易地在Lua中。 -> 可以很容易地在Lua中实现。
P147 L1:若想...。则先需要... -> 我们将...。先...
P147 L11:时,就会...。如果...,就... -> ,就去...,...,继续...
P148 L11:一个类中的方法 -> 一个类方法
P148 L13:其中一个参数表示新类的所有基类 -> 其参数表示新类的所有基类
P150 L8:具体章节 -> 在之前的章节
P151 L8:区别关键 -> 关键
P152 L-5:都用 -> 用
P153 L-2:有一个key或value -> key或value其一
P154 L-4:备忘录(memoize) -> 记忆(memoize) or 缓存(memoize)
P154 L-2:度, -> 度:
P155 L17:但, -> 但是
P155 L18:例如, ->
P155 L19:耗费 -> 耗尽
P155 L21:编译结果。 -> 编译结果(实际上是全部)。
P155 L-7:“备忘录” -> “缓存” or “记忆”
P156 L-10:遍历 -> 遍历,
P156 L-4:Lua是 -> Lua
P157 L-2:一些默认值 -> 少量默认值
P161 脚注1:一个特殊的inf值 -> 特殊值inf
P167 L-2:复制 -> 副本
P172 L1:接下去 -> 稍后
P172 L2:其次 -> 然后
P173 L3:转移 -> 转义
P174 L1:之间的空格 -> 之间的可选空格
P176 L14:每个副本 -> 副本
P177 L9:并 -> 我们
P177 L11:不仅是一个字符串, ->
P179 L-9:并伴随 -> 后跟
P182 L1:但在 -> 在
P182 L10:因此 -> 因为
P183 L2:在搜索字符串时,...,而在替换字符串时,... -> 在搜索字符串中,...,而在替换字符串中,...
P183 L5:转移 -> 转义
P183 L10:十六进制 -> 十进制
P183 L17:翻译成对应字符了 -> 编码了
P188 L-10:参数一个 -> 参数,一个
P188 脚注1:到底了 -> 到了
P191 L13:空格字符 -> 空白字符
P194 L15:复制 -> 副本
P195 L-14:并 -> 它
P195 L-5:有很多用处,但它与系统之间也有密切相关系。 -> 很有用,但它严重依赖系统。
P196 L-3:返回(3,4) -> return (3,4)
P198 L14:字段field -> 字段name
P201 L-5:这样才可以 -> 这样可以
P207 L12:语方 -> 语言
P207 L-7:但必须保证传入参数的合法性 -> 你应该在调用前确保参数的有效性
P207 脚注:编号错了
P209 L-8:就可以了,那么处理过程就是 -> ,如后面这个,
P210 L10 L13:--cplusplus -> __cplusplus
P211 L11:先进后出 -> 后进先出
P216 L15:如果发生内存分配错误,其他大多数函数都会抛出异常。 -> 而且,其他函数大多只在分配内存失败时抛出异常。
P216 L-10:之前setjmp -> 你的setjmp
P216 L-5:但它接受一个C函数作为参数,然后调用这个C函数。将一个函数压入栈中不会有内存分配失败的可能。 -> 但它把要调用的C函数作为参数(传入),所以不会有把函数压栈时分配内存失败的风险。
P217 L-2:lua_error。 -> lua_error(luaL_error更好,它格式化错误消息然后调用lua_error)。
P219 L8:Lua来作为配置文件 -> Lua配置文件
P223 L-9:*name -> *colorname
P224 L16:在Lua中 -> 然而在Lua中
P224 L-1:C语 -> C语言
P230 L-13:Mysin -> mysin
P232 L3:但说 -> 但是
P232 L15:并以此 -> 以此
P235 L-5:一些字符串 -> 少量字符串
P235 L-1:或其他 -> 及其他
P236 L-6:例如...。 -> 例如对于...的情形。
P238 L7:C变量 -> C结构
P238 L7:因为,不要在一个检索Lua字符串的C函数之外继续持有指向Lua字符串的指针。 -> 如前所示,对于Lua字符串指针,不要在取得它们的C函数之外继续持有它们。
P238 L10:,并可以将这个引用保存在C中。 -> 并存在C中。
P239 L-2:一个函数 -> 一个C函数
P240 L4 L4 L5:帐户 -> 计数器
P242 L-2:并 ->
P246 L-4:通常,辅助库中 -> 辅助库照例
P250 L-6:另一种面向对象写法是使用常规的数组访问写法。 -> 除了面向对象记法,还可用常规数组记法来访问我们的数组。
P251 译注1:因为在Lua代码中无法访问userdata的元表。 ->
狗屁,若如此,则第一行代码就是错的;实际缘由是OO实现的库中没有这3个函数,他们是userdata的元表中的方法。
P253 L-5:示例 -> 实例
P254 L8:通常,还需要 -> 我们仍然需要
P254 L-5:如果先打开目录,再调用lua_newuserdata就会引发一个错误,这样会丢失DIR结构。 -> 如果先打开目录,再调用lua_newuserdata时出错,就会丢失DIR结构。
P256 L3:(Simple API for XML和XML的简单API) -> (Simple API for XML,XML的简单API)
P256 L-7: 为了...为了 -> 为...为
P258 L-14:或任何C函数中 -> 或任何C结构中
P258 L-3:*parser -> parser
P260 L-6:但当 -> 当
P265 L-7:因为 -> 所以
P266 L1:便用 -> 使用
P266 L11:除了主线程之外 -> 除了主线程
P266 L13:即使是这个调用使用到了这个线程 -> 即使这个调用正用着这个线程
P266 脚注1:译注是什么意思?
P267 L2:某些 -> 这些
P267 L13:交出控制权时所传递的那些值 -> 传给yield的那些值:直译更清晰
P267 L16:都是由yield调用返回的 -> 都将成为yield调用的返回值:或:都将由yield调用返回
P268 L6:一个很常的问题 -> 一个很常见的问题
P268 L10:调用lua_yield,就可以 -> 必须按照下面的方式调用lua_yield,才可以
P268 L15:由于C函数不能交出控制权,所以会带来一些限制。特别是在一个Lua循环中调用yield时,当函数交出控制权并再次恢复执行时,循环会再次调用这个函数。 -> C函数不能交出控制权,但我们可以规避这个限制,方法是在Lua的循环中调用它们(hshqcn注:英文句式为:通过...规避...限制)。这样一来,在该函数交出控制权、然后线程恢复后,循环会再次调用该函数(hshqcn注:C函数以return lua_yield(L, nres);方式退出后,其调用者协程-Lua-即被挂起,该协程恢复运行后仍在循环中)。
P270 L11:thread字段有什么用?
P275 L18:很简单 -> 很轻便
P279 L-10:这个阶段为 -> 这个阶段涉及
P280 L3:它以隔行扫描的方式与解释器一起工作 -> 它与解释器交叉运行
P280 L5:为了确保解释器能正常工作,解释器中的有些操作还会检测危险的修改, ->
为确保收集器的准确性,解释器的某些操作具有屏障,用于检测危险的修改,
P280 L15:一轮 -> 一步
P280 L16:如果 ->
P280 L-5:what参数 -> what参数(C中是枚举值,Lua中是字符串)
P280 脚注1:一些 -> 少量
阅读(2657) | 评论(1) | 转发(0) |