说实话,我仍然对实例变量和局部变量感到困惑,不确定应该使用哪一个。究竟是什么地方范围?
条件只有一个我知道的局部变量不能用是:
class MyClass
def initialize
local_var = 1
@instance_var = 1
end
def show_local_var
local_var
end
def show_instance_var
@instance_var
end
end
显然,MyClass.new.show_instance_var
作品而MyClass.new_show_local_var
不
有关2种变量的另一件事是,块似乎共享相同的局部范围,所以本地变量可以参考:
local_var = 1
3.times do
puts local_var
end
我所知道的关于t他的区别,有没有其他可用的?请让我知道
,如果有这方面有任何的文章,这将是对我来说很有帮助,
我不知道红宝石,但你似乎有想法。一个街区就像工厂里的一个房间。如果你在一个椅子工厂里,那里有一个“精加工”的房间 - 椅子没有涂漆并且涂漆出来。如果另一个*房间里的工作人员说“把画笔交给我”,答案是“什么?你指的是来自”整理“房间的画笔?这不是我们的,它可能是现在被扔掉了。” – Beta
@Beta:与块/封闭的关系更像是:有人在将画笔放入椅子*之前*进入最后房间。然后在整理房间里,工作人员要求画笔,然后告诉他:“是的,我们在这里没有自己的画笔,但是看,有人从外面给我们提供一个。”?无论如何,这是我曾经听到过描述这种现象的最古怪的比喻,但我喜欢它:) – emboss