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是的,很好。