Sorry for the too elemental question (don’t know if this is the right
place to make questions like this) I just have started with ruby, and
don’t understand the difference “::” “.” I have read that :: is for
accessing constants, but then I see, that, for example, I can make a new
object like with ::new or .new. Could anyone explain that?
Thank you very much.
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com
Sorry for the too elemental question (don’t know if this is the right
place to make questions like this) I just have started with ruby, and
don’t understand the difference “::” “.” I have read that :: is for
accessing constants, but then I see, that, for example, I can make a new
object like with ::new or .new. Could anyone explain that?
There is some overlap, but in general usage, use :: to access names
that are scoped within modules and use . to send messages (call)
methods.
At least while you are getting started, this is the easiest thing to
remember.
pth
To be precise, :: and . are completely equivalent operators to call
methods of an object. I think (not really sure) that an older version of
Ruby only let you use :: for class methods, but that’s no longer the
case.
Only :: can be used for constant lookup; it’s idiomatic to use . for any
method calls, as Patrick says.
Thank you very much for your answers. So if I have understood right:
“::” constants, and module methods
“.” methods
I also have read today in “ruby in a nutshell”, that “::” is preferred also
with class methods (but the war wroten in 2001, so it could be a bit
outdated).
My recommendation is:
“::” for constant paths
“.” for method calls
I don’t think there’s any reason to use :: for method calls just
because the receiver is a class or module. It just adds an
unnecessary special case.
Thank you very much for your answers. So if I have understood right:
“::” constants, and module methods
“.” methods
I also have read today in “ruby in a nutshell”, that “::” is preferred
also with class methods (but the war wroten in 2001, so it could be a
bit outdated).
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.