當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Module.const_get用法及代碼示例


本文簡要介紹ruby語言中 Module.const_get 的用法。

用法

const_get(sym, inherit=true) → obj
const_get(str, inherit=true) → obj

mod 中檢查具有給定名稱的常量。如果設置了inherit,則查找還將搜索祖先(如果modModule,則查找Object)。

如果找到定義,則返回常量的值,否則會引發 NameError

Math.const_get(:PI)   #=> 3.14159265358979

如果提供了命名空間的類名,此方法將遞歸查找常量名。例如:

module Foo; class Bar; end end
Object.const_get 'Foo::Bar'

inherit 標誌在每次查找時都會受到尊重。例如:

module Foo
  class Bar
    VAL = 10
  end

  class Baz < Bar; end
end

Object.const_get 'Foo::Baz::VAL'         # => 10
Object.const_get 'Foo::Baz::VAL', false  # => NameError

如果參數不是有效的常量名稱,則會引發 NameError 並發出警告 “wrong constant name”。

Object.const_get 'foobar' #=> NameError: wrong constant name foobar

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Module.const_get。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。