Referncing values of local variables

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