Ruby on Rails-:符号,@ iVars和"字符串" - 哦,我的!

Mel*_*emi 21 ruby string symbols ruby-on-rails instance-variables

新到Rails并试图围绕让我的头的时候/为什么要使用:symbols,@ivars,"strings"的框架内.

我想我从概念上理解它们之间的差异

  • :symbol每个项目只有一个实例
  • @ivar每个实例一个
  • multiple "strings"- 因为它们是在引用时创建的(?)

随意纠正我!

主要的困惑来自于理解Rails期望的规则惯例 - 在哪里以及为什么?

我确定有一个"啊哈!" 那一刻即将到来,但我还没有...因为它对我来说似乎很随意(来自C/Obj-C).

-谢谢

Pra*_*ran 15

@instance_variable是一个实例变量.它通常在控制器中定义,并在视图中可访问.

"string"是一个字符串,就像任何其他语言一样.

:symbol,是因为你所提到的这名代表和字符串的有效方式; 它们是文字价值.它被初始化并且在ruby会话期间仅存在一次.它不是字符串,因为您无法访问String方法; 这是一个符号.最重要的是,它是不可改变的.由于这些原因,在哈希中表示键变得非常方便.Rails方法使用哈希,因此,您在Rails中找到符号.


mip*_*adi 4

实例变量非常简单:它们跟踪特定实例的属性/值,因此当值因实例而异时可以使用它们。

符号与字符串相比更加随意一些。符号通常用于量值,与 C 等语言使用枚举的方式非常相似;Ruby 没有枚举,因此通常使用符号来填补这一空白。字符串用于更多样化的文本片段,这些文本片段不会用作标志或类似的常量。