Prefixes _ and __ for object and class constants proposed

X

Xeno Campanoli

I may have brought this up before, a long time ago, but something I want
is a prefix, like @ and @@, for constants that designates them as object
or class constants respectively. That way I could make a lot of things
constants that I am now just making variables and it would be obvious
that they are constants only available for that context. I really don't
like the underscore perfectly, but I've thought about it and it seems to
be the best choice of available characters. Has anybody every thought
about this (barring my possibly bringing it up two years ago), and does
anyone else think this is a reasonable suggestion? If so, I would think
it would be a small change that could be implemented in parallel with
existing prefix syntax handling.

Sincerely, Xeno Campanoli, Tacoma/Seattle programmer.
 
D

Dave Thomas

I may have brought this up before, a long time ago, but something I
want
is a prefix, like @ and @@, for constants that designates them as
object
or class constants respectively. That way I could make a lot of
things
constants that I am now just making variables and it would be obvious
that they are constants only available for that context. I really
don't
like the underscore perfectly, but I've thought about it and it
seems to
be the best choice of available characters. Has anybody every thought
about this (barring my possibly bringing it up two years ago), and
does
anyone else think this is a reasonable suggestion? If so, I would
think
it would be a small change that could be implemented in parallel with
existing prefix syntax handling.

I'm not sure I've ever bumped into the need for an object constant,
but if I had, I'd probably have simply implemented an instance method

class Dave
def initialize(new_pi)
@pi = new_pi
end
def PI
@pi
end
end

d1 = Dave.new(3)
d2 = Dave.new(3.14159)
d3 = Dave.new(22.0/7.0)

puts d1.PI, d2.PI, d3.PI


Dave
 
E

Eric Hodel

I may have brought this up before, a long time ago, but something I
want
is a prefix, like @ and @@, for constants that designates them as
object
or class constants respectively. That way I could make a lot of
things
constants that I am now just making variables and it would be obvious
that they are constants only available for that context. I really
don't
like the underscore perfectly, but I've thought about it and it
seems to
be the best choice of available characters. Has anybody every thought
about this (barring my possibly bringing it up two years ago), and
does
anyone else think this is a reasonable suggestion? If so, I would
think
it would be a small change that could be implemented in parallel with
existing prefix syntax handling.


In ruby, constants are more like variables that yell at you.

$ ruby
X = 1
X = 2
p X
^D
-:2: warning: already initialized constant X
2
 

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

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,021
Latest member
AkilahJaim

Latest Threads

Top