Rails中的局部变量vs.Instance变量?

时间:2012-09-20 21:23:05

标签: ruby-on-rails ruby instance-variables local-variables

虽然过去已经涵盖了这个主题(局部变量与实例变量),但我希望得到一些帮助。我已经阅读了关于这个主题的各种文档,虽然我松散地理解一个块中存在一个局部变量,一个实例变量可以调用并被其他方法使用,但我希望从社区中获得更多的清晰度

你们中的任何人都可以如此善良地解释一个局部变量与实例上下文中的实例变量的对比吗?可能是一个用户故事?我不想看到任何代码,而是看一个故事,然后围绕该故事编写代码作为练习。例; "这是一个局部变量的故事;简去商店......"或者,"这里是一个实例变量的故事,比尔去商店......"等

我看到其他很多人都在努力解决这个问题,所以我猜这两个高质量的故事应该有助于帮助很多像我一样的人。

感谢!!!

2 个答案:

答案 0 :(得分:2)

你去过游乐园吗?

如果您购买了所有可以骑行的通行证,您可以继续骑行,如过山车,摩天轮和越野车道。

所有实例变量都是你的@pass,因为在ruby中,实例变量以@符号开头。

局部变量就像只能访问骑行区域的一个部分。你的通行证适合摩天轮。一旦你在摩天轮部分之外,没有人再关心通行证了,问道,wtf就是这个!

在ruby术语中,变量是在作用域中分配和使用的,如果您需要转到其他作用域或方法,则可以使用这些实例变量继续在那里获得乐趣。

答案 1 :(得分:1)

乳制品使用模板(型号/类)来打印牛奶盒 简去商店买牛奶。她现在有一个实例的牛奶(容器)。

牛奶容器上贴有贴纸,上面写着“今天使用”。

您不会在用于制作容器的型号上看到该标签 您不会在模型的每个实例上看到该贴纸 您只能在本地商店看到贴纸,当他们在下午5点将其贴上即将到期的特定纸箱时。

这不是本地变量的意思,但它是现实世界的一种“类型”类比。