|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Note: parts of this message were removed by the gateway to make it a legal Usenet post.
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 |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
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 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 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
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. 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 -- A Look into Japanese Ruby List in English http://www.kakueki.com/ |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
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/. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Note: parts of this message were removed by the gateway to make it a legal Usenet post.
First, thank you to Markus, Harry and 7stud for your . 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 > |
|
![]() |
| Outils de la discussion | |
|
|