冒号的意义:在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中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

以冒号为前缀的单词在 Ruby 中的作用是啥? [复制]

在python中获取冒号之后和逗号之前的值[重复]

从字符串中删除 HTML 标记并保留“:”(冒号)[重复]

这是啥 ES6 语法?函数调用后的冒号[重复]

无法通过 XElement 创建名称中带有冒号的 XML 标记 [重复]

双冒号运算符 (::) 和(有效)final [重复]