Team,
I would like to initialize some variables/arrays in a method, and access
them within another method.
For instance,
class My_Class
def init_method(size)
arr = Array.new(size)
index = 1
end # End method
def print_method
p arr
p index
end # End method
end # End class
my_obj = My_Class.new()
my_obj.init_method 10
my_obj.print_method
When I attempt to execute this code, I receive the error:
ruby My_Class
My_Class:9:in `print_method': undefined local variable or method `arr' for
#<My_Class:0x28ee87c> (NameError)
from My_Class:17
I know the reason why it is happening, but I don't know how to access a
variable from another method, if there is a way.
Thank you
Victor
Use instance variables!
class Example
def init(size) # why u arent using initialize?
@arr = Array.new
@index = -1
end
def print_method
p @arr
p @index
end
end # class Example
···
Am Sun, 4 Nov 2007 12:51:19 +0900 schrieb "Victor Reyes" <victor.reyes@gmail.com>:
class My_Class
def init_method(size)
arr = Array.new(size)
index = 1
end # End method
def print_method
p arr
p index
end # End method
end # End class
my_obj = My_Class.new()
my_obj.init_method 10
my_obj.print_method
Harry3
(Harry)
3
class My_Class
def initialize(size)
@arr = Array.new(size)
@ind = 1
end
def print_method
p @arr
p @ind
end
end
my_obj = My_Class.new(10)
my_obj.print_method
Harry
···
On 11/4/07, Victor Reyes <victor.reyes@gmail.com> wrote:
Team,
I know the reason why it is happening, but I don't know how to access a
variable from another method, if there is a way.
--
A Look into Japanese Ruby List in English
First, thank you to Markus, Harry and 7stud for your help.
I truly appreciate it.
Markus, answering your question "why u arent using initialize?" SIMPLE: I
didn't know how to use it.
Again, Thank you all!
Victor
···
On 11/3/07, Victor Reyes <victor.reyes@gmail.com> wrote:
Team,
I would like to initialize some variables/arrays in a method, and access
them within another method.
For instance,
class My_Class
def init_method(size)
arr = Array.new(size)
index = 1
end # End method
def print_method
p arr
p index
end # End method
end # End class
my_obj = My_Class.new()
my_obj.init_method 10
my_obj.print_method
When I attempt to execute this code, I receive the error:
ruby My_Class
My_Class:9:in `print_method': undefined local variable or method `arr' for
#<My_Class:0x28ee87c> (NameError)
from My_Class:17
I know the reason why it is happening, but I don't know how to access a
variable from another method, if there is a way.
Thank you
Victor
7stud
(7stud --)
5
Markus Schirp wrote:
class Example
def init(size) # why u arent using initialize?
@arr = Array.new
@index = -1
end
Just to flesh out that comment. Examine this class:
class Dog
def init_method(age, weight)
@age = age
@weight = weight
end
def show
puts @age, @weight
end
end
d = Dog.new
d.init_method(2, 20)
d.show
--output:--
2
20
However, when you create an object, ruby *automatically* calls a method
called initialize() in the object's class:
class Dog
def initialize(age, weight)
@age = age
@weight = weight
end
def show
puts @age, @weight
end
end
d = Dog.new(2, 20)
d.show
--output:--
2
20
···
--
Posted via http://www.ruby-forum.com/\.