Ruby:多模块声明

时间:2012-06-02 00:02:52

标签: ruby

我正在尝试理解一个包含多个模块的代码

module a; module b; module c;

def foo
    #something 
end

end
end
end

那么上面的代码究竟是什么意思呢?是不是所有3个模块都有foo,我可以访问a.foo或b.foo等..?

1 个答案:

答案 0 :(得分:1)

我可以看出这会让人感到困惑。这是非常糟糕的布局。将模块声明拆分为单独的行,这更有意义。如果写在一行上,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

你可能会明白为什么我说这不好写。此外,模块名称应以大写字母开头。