In this phrase: class IterString < ::String # whatever end what do the double-colons do? Thx - m.
on 2009-03-01 00:00
on 2009-03-01 01:45
On Sun, Mar 01, 2009 at 07:54:03AM +0900, matt neuburg wrote: > In this phrase: > > class IterString < ::String > # whatever > end > > what do the double-colons do? Thx - m. It's explicitly telling ruby where to find the "String" constant. For example: module Foo class String def hello "world" end end class Bar < String end class Baz < ::String end end puts Foo::Bar.new.hello puts Foo::Baz.new.hello # => (NoMethodError) The double colons make sure that ruby looks at the top level for the constant.
on 2009-03-01 02:17
Aaron Patterson <email@example.com> wrote: > The double colons make sure that ruby looks at the top level for the constant. Right, I see, I was testing it in a place where String and ::String were the same; that's why I couldn't see a difference. :) Thx - m.