-1
我必须在运行时创建一个数组,存储在一个哈希中。 我怎样才能以聪明的方式实现这一点? 由于服务不是数组,因此以下代码无法使用。数组动态哈希
services = {}
services["clean"] << 'bathroom'
我必须在运行时创建一个数组,存储在一个哈希中。 我怎样才能以聪明的方式实现这一点? 由于服务不是数组,因此以下代码无法使用。数组动态哈希
services = {}
services["clean"] << 'bathroom'
或者尼尔·斯莱特的语法,你可以使用:
h = Hash.new { |hash, key| hash[key] = [] }
实例的哈希与[]
的默认值。
我可能会做这样的事情:
(services["#{service['service']}"] ||= []) << service['attributes']
,如果你想存储nil
或false
在你的哈希值,这是行不通的,因为它依赖于nil
的感实性时,有没有返回匹配键为假,以便||=
操作触发分配新的空数组。
不确定是否有更好的语法。
我不知道。更好的语法。除非它可以自动生成所有关键查找,当你不想要的时候。 –
什么是自动生动? –
对于散列的哈希散列: services = Hash.new {| hash,key | hash [key] = Hash.new {| hash2,key2 | hash2 [key2] = []}} –