我尝试了下面的代码,看看我是否可以在没有任何显式实例方法调用的情况下直接分配实例变量或不在类外部。是的,下面的代码说我可以。
@ubuntu:~$ irb --simple-prompt
class Foo
def initialize(x,y,z)
@x, @y, @z= x, y,z
end
def to_ary
[@x, @y, @z]
end
def to_hash
[@x => @y]
end
end
#=> nil
foo = Foo.new(10,11,12)
#=> #<Foo:0x00000001191738 @x=10, @y=11, @z=12>
我的问题是:
a,*b = foo
#=> #<Foo:0x00000001191738 @x=10, @y=11, @z=12>
a
#=> 10
b
#=> [11, 12]
在不创建对象的情况下,如何或调用了哪个内部方法来对a,*b
实例变量进行此类分配?
谢谢