11

Ruby 1.9.3以降、プライベート定数を作成できます。

module M
  class C; end
  private_constant :C
end

これが何をするかについての良いドキュメントはありますか?呼び出しと同様にプライベート定数のみの名前を取得する方法はありますかconstants

4

2 に答える 2

11

Ruby 1.9.3までは、プライベート定数のようなものはありません。ただし、すべての定数のリストを取得するには、を使用するだけですconstants

module Mod
  CONST = "value"
end

Mod.constants #=> [:CONST]

1.9.3からprivate_constant追加されましたが、本当にプライベートなものはないので、次のことができます...

module Mod
  CONST = "value"
  private_constant :CONST
end

Mod.const_get(:CONST) #=> "value"

すべてのプライベート定数のリストを取得する方法はないと思いますが、特定の名前の存在をテストすることはできます。

Mod.const_defined?(:CONST) #=> true
于 2012-10-17T23:19:06.750 に答える