Ode*_*Ode 5 ruby ruby-on-rails ruby-on-rails-3.2
我知道::Ruby 是一个作用域解析运算符,用于访问模块和类中的方法,但是使用::?
例子
class Foo::Bar::Bee < Foo::Bar::Insect
def a_method
[...]
end
end
Run Code Online (Sandbox Code Playgroud)
如果“正确”的意思是语法正确—— 是的。
这样做并没有什么本质上的错误,如果您在单独的文件中定义子类(下面的示例),那么这是一种相对常见的做法。
# lib/foo.rb
module Foo
end
# lib/foo/bar.rb
class Foo::Bar
end
Run Code Online (Sandbox Code Playgroud)
我会避免定义类这样,如果你不能肯定的是,父模块或类已经存在,不过,因为你会得到一个NameError由父(例如Foo)不存在。出于这个原因,您不会看到很多遵循更简洁模式的开源软件。
class Foo::Bar
end
Run Code Online (Sandbox Code Playgroud)
module Foo
class Bar
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1899 次 |
| 最近记录: |