I apologize in advance, because I know this gets asked again and again
(and again…) by newbies, but my searches don’t show a clear answer,
and none of my attempts work.
This should be simple. I want to define a constant,
a = 3
then reference the value of a in arguments like,
temp_array = Array.new(a)
such that the temp_array is assigned a size of 3.
This always seems to result in complaints about undefined local variable
or methods. Eval doesn’t seem to make it work.
What I am doing wrong??
This should be simple. I want to define a constant,
a = 3
In ruby, constant names begin with a capital letter (it is common
practice to use fully uppercase names) :
MY_CONSTANT=3
or
My_constant=3
Variable names starting with a lowercase letter define local variables.
Hi –
On Sat, 18 Nov 2006, Thomas L. wrote:
I apologize in advance, because I know this gets asked again and again
(and again…) by newbies, but my searches don’t show a clear answer,
and none of my attempts work.
This should be simple. I want to define a constant,
a = 3
That’s not a constant; it’s a local variable. It sounds like you
might be running into scoping issues.
then reference the value of a in arguments like,
temp_array = Array.new(a)
such that the temp_array is assigned a size of 3.
This always seems to result in complaints about undefined local variable
or methods. Eval doesn’t seem to make it work.
I suspect you’re doing something like:
a = 3
def my_method
temp_array = Array.new(a)
end
where a has gone out of scope by the time you use it.
You can use a constant:
A = 3
though that would normally be considered overkill, and bad design,
unless it’s really a constant that needs to be defined outside of any
method, rather than a local variable or method argument.
David
Stefano C. wrote:
This should be simple. I want to define a constant,
a = 3
In ruby, constant names begin with a capital letter (it is common
practice to use fully uppercase names) :
MY_CONSTANT=3
or
My_constant=3
Variable names starting with a lowercase letter define local variables.
Umm, uh (crawls under desk in embarassment…). Thanks. :}