Ruby ruby 元编程 中文版 有个错误大家注意下

anleb · 2012年07月03日 · 最后由 nevernet 回复于 2012年08月13日 · 3134 次阅读

在第二天,bill 带我们学动态方法

class Computer
def initialize(computer_id, data_source)
@id = computer_id
@data_source = data_source
data_source.methods.grep(/^get_(.*)_info$/) { Computer.define_component $1 }
end

注意 中文书中 (/^get_(.*)_info$/) 是没有 * 的,纳闷了很久,看了英文版才知道印刷错误。

不止这一个地方,还有 method_missing 重构小节将@id印成了 args[0],args 应该是个 []。

#1 楼 @adventurelw 这个地方没错,因为他不是正式代码,他只是测试用的,他只是用了 arg[0] 一个参数而已

运行通不过还不是错误么?不过反正我也不 care 这些,我只管我自己写的代码能过。

你的是哪一版? 2012 年 2 月第 1 版第 1 次印刷没有那个 “ * ”。

我猜楼主刚学 ruby 不久。 这样的印刷问题在书中随处可见。

那还有一些问题的。*args,貌似有地方印成了 +args, 不过还好,不影响阅读,反正一看就懂,不可能是新手就跑来看这本书。

晕,算了,还是看英文版

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册