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.