冒号的意义:在Ruby中[重复]
Posted
技术标签:
【中文标题】冒号的意义:在Ruby中[重复]【英文标题】:Significance of colon : in Ruby [duplicate] 【发布时间】:2012-10-15 17:59:33 【问题描述】:可能重复:Understanding Symbols In RubyWhat is the colon operator in Ruby?
我真的觉得问这个很天真,但我要继续问:
:
在 ruby 中的重要性是什么?
我已经看到它被用于许多地方,例如 params[:id]
或 x < :length
。
【问题讨论】:
重复:***.com/questions/2341837/… 和 ***.com/questions/6337897/… 【参考方案1】:冒号表示“符号”。一个符号就像一个字符串,但它是不可变的(你不能改变它的内容)。在幕后,它也占用更少的内存,因为一个符号只需要在内存中存在一次(即,两个名为“length”的字符串将在内存中存在两次,但两个名为 :length 的符号将指向同一个对象)。
【讨论】:
我会说:
后跟一个词表示一个符号,而 :
本身会引发语法错误。【参考方案2】:
:length
表示它是一个符号
符号是字符串,只是有一个重要区别,符号是不可变的。
RubyDoc: Symbol 对象在 Ruby 解释器中表示名称和一些字符串。它们是使用 :name 和 :"string" 文字语法以及各种 to_sym 方法生成的。
这里有一些了解符号的好地方
The Ruby_Newbie Guide to Symbols Understanding Ruby Symbols The Difference Between Ruby Symbols and Strings【讨论】:
【参考方案3】:它是解释器类型的语法指示。
0-9 numeric*
: symbol
"" string
[] array
hash
现实中的模式更复杂。
【讨论】:
以上是关于冒号的意义:在Ruby中[重复]的主要内容,如果未能解决你的问题,请参考以下文章