我试图理解一段带有多个模块的代码
module a; module b; module c;
def foo
#something
end
end
end
end
那么上面的代码到底是什么意思呢?是不是所有 3 个模块都有 foo 并且我可以访问 a.foo 或 b.foo 等...?
我试图理解一段带有多个模块的代码
module a; module b; module c;
def foo
#something
end
end
end
end
那么上面的代码到底是什么意思呢?是不是所有 3 个模块都有 foo 并且我可以访问 a.foo 或 b.foo 等...?
我可以看到这会令人困惑。它的布局非常糟糕。将模块声明拆分为单独的行,这样更有意义。如果写在一行上,Ruby 允许用分号分隔某些内容……这在这里被滥用,只会导致混乱。
如果布局正确,代码会扩展到此:
module a
module b
module c
def foo
#something
end
end
end
end
使用分号在单行上编写定义的其他示例包括:
class Foo < Bar; def zip; if @terrifying; puts "Yes"; else; puts "No"; end; end; end
您可能会明白为什么我说这写得不好。此外,模块名称应以大写字母开头。