我在人偶中有这个数据结构:
Struct[
'ssh_keys' => Hash[
String,
Struct[
'path' => String,
'content' => String,
]
]
] $myStructure
我想将所有“路径”值提取到数组中。
我已经使用
映射了内部Struct。$testvariable = $myStructure['ssh_keys'].map |$items| { $items[1] }
但是这里有些烂,任何帮助将不胜感激。
答案 0 :(得分:4)
目前尚不清楚您要挂什么,因为您确实已经找到了可行的解决方案的大部分方法。但是,对于散列,我通常更喜欢map()
函数的形式,其中lambda带有两个参数,分别是键和值。在这种情况下,这将更清楚地显示:
$testvariable = $myStructure['ssh_keys'].map |$unused, $ssh_key| { $ssh_key['path'] }
但是您还应该能够在原始代码中将$items[1]
索引为Struct
的哈希($items[1]['path']
)。
如果您不能遵守上述$items.dig(1, 'path')
数组和哈希索引的混合使用,也可以使用dig()
函数。