Victor 'Zverok' Shepelev
12/17/2006 3:31:00 PM
From: list-bounce@example.com [mailto:list-bounce@example.com] On Behalf Of
Li Chen
Sent: Sunday, December 17, 2006 5:17 PM
>
>I try to understand the concept of variable scopes. I define two classes
>with very similar structures. But Ruby complains class Y only. Any
>comments?
>
>Thanks,
>
>Li
>
>
>class X
> def initialize(name,artist,duration)
> @name=name
> @artist=artist
> @duration=duration
> end
> puts "This is the name"" #{name}"
>end
>
>test_x=X.new(1,2,3)
>puts test_x.inspect
>
>>ruby variables1.rb
>This is the name X
>#<X:0x28ae894 @artist=2, @name=1, @duration=3>
>>Exit code: 0
>
>
>class Y
> def initialize(arg1,arg2,arg3)
> @arg1=arg1
> @arg2=arg2
> @arg3=arg3
> end
> puts "This is arg1"" #{arg1}"
>end
>
> test_y=Y.new(1,2,3)
> puts test_y.inspect
>
>>ruby variables2.rb
>variables2.rb:15: undefined local variable or method `arg1' for Y:Class
>(NameError)
>>Exit code: 1
>
In the first case, "name" is threated as "X.name" (method "name" of object
"class X").
V.