[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

double colons in class def

matt

2/28/2009 10:52:00 PM

In this phrase:

class IterString < ::String
# whatever
end

what do the double-colons do? Thx - m.


--
matt neuburg, phd = matt@tidbits.com, http://www.tidbits...
Leopard - http://www.takecontrolbooks.com/leopard-custom...
AppleScript - http://www.amazon.com/gp/product/...
Read TidBITS! It's free and smart. http://www.t...
2 Answers

Aaron Patterson

3/1/2009 12:42:00 AM

0

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.

--
Aaron Patterson
http://tenderlovem...

matt

3/1/2009 1:09:00 AM

0

Aaron Patterson <aaron@tenderlovemaking.com> wrote:

> 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.
>
>
> 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.

--
matt neuburg, phd = matt@tidbits.com, http://www.tidbits...
Leopard - http://www.takecontrolbooks.com/leopard-custom...
AppleScript - http://www.amazon.com/gp/product/...
Read TidBITS! It's free and smart. http://www.t...