newby question

A

Alfonso

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
 
P

Patrick Hurley

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
 
D

David Vallner

--------------enig3C92BCECC5B174C5752E94E5
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Patrick said:
=20
There is some overlap, but in general usage, use :: to access names
that are scoped within modules and use . to send messages (call)
methods.
=20

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=
=2E

Only :: can be used for constant lookup; it's idiomatic to use . for any
method calls, as Patrick says.

David Vallner


--------------enig3C92BCECC5B174C5752E94E5
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)

iD8DBQFFV1hyy6MhrS8astoRAvg7AKCAizjZCNJkTkxJEU+owqfQ4je7pgCdE+RG
S61Dnz1MP1zmZrZ4ftX/cw0=
=SdCi
-----END PGP SIGNATURE-----

--------------enig3C92BCECC5B174C5752E94E5--
 
A

Alfonso

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
 
D

dblack

Hi --

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.


David

--
David A. Black | (e-mail address removed)
Author of "Ruby for Rails" [1] | Ruby/Rails training & consultancy [3]
DABlog (DAB's Weblog) [2] | Co-director, Ruby Central, Inc. [4]
[1] http://www.manning.com/black | [3] http://www.rubypowerandlight.com
[2] http://dablog.rubypal.com | [4] http://www.rubycentral.org
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,233
Members
46,821
Latest member
AleidaSchi

Latest Threads

Top