Referncing values of local variables

T

Thomas Luedeke

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??
 
S

Stefano Crocco

This should be simple. I want to define a constant,

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.
 
D

dblack

Hi --

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

--
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
 
T

Thomas Luedeke

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

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,768
Messages
2,569,575
Members
45,054
Latest member
LucyCarper

Latest Threads

Top