3

可能的重复:
理解 Ruby 中的符号 Ruby
中的冒号运算符是什么?

我真的很天真地问这个问题,但我要继续问:

:红宝石的重要性是什么?

我已经看到它在很多地方都使用过,params[:id]例如x < :length.

4

3 回答 3

6

冒号表示“符号”。一个符号就像一个字符串,但它是不可变的(你不能改变它的内容)。在幕后,它也占用更少的内存,因为一个符号只需要在内存中存在一次(即,两个名为“length”的字符串将在内存中存在两次,但两个名为 :length 的符号将指向同一个对象)。

于 2012-10-25T14:12:44.187 回答
2

:length表示它是一个符号

符号是字符串,只是有一个重要区别,符号是不可变的。

RubyDoc:符号对象表示 Ruby 解释器中的名称和一些字符串。它们是使用 :name 和 :"string" 文字语法以及各种 to_sym 方法生成的。

这里有一些了解符号的好地方

于 2012-10-25T14:20:52.570 回答
2

它是解释器类型的语法指示。

0-9   numeric*
:     symbol
""    string
[]    array
{}    hash
  • 现实中的模式更复杂。
于 2012-10-25T14:21:49.470 回答