博客文章Uninitialized variables指出未初始化的类变量,局部变量和常量会导致异常(在经过method_missing
或其等价物之后),而未初始化的全局变量和实例变量仅导致警告
是否存在导致异常的逻辑,并且仅导致警告?
答案 0 :(得分:2)
我的猜测是,当它们可能在元编程中有用时会提供异常。如果发现缺少全局变量或实例变量,您可以轻松地实例化它 - 我经常看到这样的习语:
@var ||= 'default_value'
不需要任何花哨的东西。
对于类,其他常量和方法,检查它们是否已定义并使用内联更为尴尬。异常(以及const_missing
和method_missing
等相关方法提供了处理它们缺席的钩子。例如,我相信Rails使用const_missing
在运行时加载类。