【发布时间】:2012-08-27 04:20:43
【问题描述】:
在学习 Ruby 时,我偶尔会遇到“:”运算符。通常我看到它的形式是
:symbol => value
这是什么意思?
【问题讨论】:
标签: ruby
在学习 Ruby 时,我偶尔会遇到“:”运算符。通常我看到它的形式是
:symbol => value
这是什么意思?
【问题讨论】:
标签: ruby
它只是表明它是一个符号而不是一个字符串。在 ruby 中,通常使用符号而不是字符串。
{:foo => value}
{'foo' => value}
它基本上是一种表达字符串的简写方式。它不能像您想象的那样包含空格,因此符号通常使用下划线。
你自己试试这个:
foo = :bar
foo.to_s # means to string
baz = 'goo'
baz.to_sym # means to symbol
【讨论】:
:"hello world" 包含一个空格,但它是一个完全有效的符号。字符串和符号之间的区别在于,每次引用同一个符号时,符号总是在内存中占据相同的位置。这很好,因为如果您以正确的方式使用它可以节省内存;这很糟糕,因为如果你不这样做,它会消耗内存。请参阅:Symbol。