0

重複の可能性:
Rubyのダブルコロン(::)とは何ですか?

私の怠惰を許してください。推測してみました。この場合、double':: Logger'が何をするのかわかりませんか?

https://github.com/wycats/rack-offline/blob/master/lib/rack/offline.rb#L25

オブジェクトを初期化して、そのスコープにない変数に割り当てているようですか?25行目は{begin/end}ブロックでラップされ、@loggerに割り当てられます

4

1 に答える 1

3

/パス内のがネストされたディレクトリを定義するのと同じように、::ネストされたクラスにアクセスします。

また、リーディングと同様に、リーディング/::はツリーの最上部から開始することを意味します。グローバルスコープで定数の検索を開始します。

# Bar declared in global scope
class Bar
end

# Foo declared in global scope    
class Foo

  # A different class named Bar declared in the scope of Foo, not global
  class Bar
  end

  Bar   #=> refers to Foo::Bar, that is class Bar declared within Foo
  ::Bar #=> refers to outer global scope class named Bar

end
于 2013-01-12T05:30:58.430 に答える