Ruby 如何对数字使用新的哈希样式?

Ruby 如何对数字使用新的哈希样式?,ruby,Ruby,如何使用数字作为键的新哈希样式 我有: { 1 => "terrible", 3=> "OK", 5 => "awesome" } 但是我想知道如何使用新的散列样式来编写它们。如果没有,则要使用新语法,必须使用有效符号的子集。数字并非如此,正如穆所指出的,还有其他限制。您的密钥是数字,而不是符号。使用新的散列样式{key:value}时,键始终应该是一个符号,因此不能将新的散列样式用于散列,因为键以数字而不是符号开头。请参阅“”其中明确说明: 在版本1.9中,Ruby为哈希

如何使用数字作为键的新哈希样式

我有:

 { 1 => "terrible", 3=> "OK", 5 => "awesome" }

但是我想知道如何使用新的散列样式来编写它们。

如果没有,则要使用新语法,必须使用有效符号的子集。数字并非如此,正如穆所指出的,还有其他限制。

您的密钥是数字,而不是符号。使用新的散列样式
{key:value}
时,键始终应该是一个符号,因此不能将新的散列样式用于散列,因为键以数字而不是符号开头。请参阅“”其中明确说明:

在版本1.9中,Ruby为哈希文本引入了新语法 键是符号。


你不能。数字键不存在“新哈希语法”。Ruby引入了一种新的语法,明确地将符号用作键。任何阅读量都应该给你这个答案。@meagar:某些符号,你不能将JavaScript样式的符号与
:$set
:'0'
。。。是的,这是我最讨厌的。是的,这是为符号键保留的,但是这个功能的设计者能让它更通用吗?假设
key:value
被解释为
{key=>value}
如果
key.is\a?Object=>true
,如果
key.isa,则为
{:key=>value}
?对象引发了“未定义的局部变量或方法”异常。(那么
key.is_是一个对象=>false
?)呢。不提倡,只是深思熟虑。从技术上讲,符号可以以数字开头<代码>:“123”
“123”。to_sym
都只产生由数字组成的符号。类似于a=:1的内容将产生错误。您所描述的是字符串数据类型,而不是数字。不要说“此链接”,而是对锚文本使用描述性的内容。请参阅W3的“”部分,以及“@daremkd meagar所描述的实际上是符号,但是请注意,这些符号在新的哈希语法中不受支持<代码>:“123”。class#=>Symbol@DaniëlKnippers仅供参考,下一版本Ruby中的哈希将支持该语法:错误
:$set
:@pancakes
是有效的符号,但不能说
$set:…
@pancakes:…
@muistoshort Mm是的,很好。