FAQ: Object-Oriented Programming I - Naming Your Variables

This community-built FAQ covers the “Naming Your Variables” exercise from the lesson “Object-Oriented Programming I”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Learn Ruby

FAQs on the exercise Naming Your Variables

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

When I add $ before my_variable within the class

class MyClass
	$my_variable = "Hello!"
end
puts my_variable

it gives an error:

undefined local variable or method `my_variable’ for Context:0xfdfd68

In the hint is says it should work.

2 Likes

I think I got it. $ should be added not only at the moment of declaration; it is a part of the variable name and should be used each time:

class MyClass
	$my_variable = "Hello!"
end
puts $my_variable
5 Likes

from the text in the lesson: “just define the variable outside of any method or class, and voilà! It’s global”

– isn’t that a local variable? I’m pretty sure even outside of a method or class you need an $ to make it global.

1 Like

Use either of the two global variable tricks mentioned above.

Ok, I understand $ prefix. What is the second trick?

The first is one that’s already familiar to you: you just define the variable outside of any method or class, and voilà! It’s global.

It’s very confusing. Help!

class MyClass
my_variable = “Hello!”
end

puts $my_variable

This still prints “Hello!” to the console. Does anyone know why?

The current session is still in memory, so that variable still exists. Refresh and try again.

2 Likes

Yes. The lesson is wrong.
Proof:
Use the defined? method as described here on a variable outside a method.

Old post, but by this sentence they mean you could define the global variable before the class:

$my_variable = "Hello!"

Though the lesson also accepts my_variable = "Hello!" I don’t think “you just define the variable outside of any method or class, and voilà! It’s global” from the exercise is technically correct as others said above though; isn’t my_variable technically a local variable in local scope?