在 ruby 中,有没有一种方法可以同时将块的参数绑定到局部变量并对其进行解构?
谷歌搜索没有找到我任何东西,并且在 IRB 中玩也毫无结果,但我想我回想起了类似于以下功能的功能:
>> [[1, 2], [3, 4]].map{|x@(y, z)| [x, y, z]}
=> [[[1, 2], 1, 2], [[3, 4], 3, 4]]
Where x
捕获迭代对象的每个顶级元素(在本例中首先[1, 2]
, then [3, 4]
) and y
and z
捕获对象内部的子元素x
(1
then 3
and 2
then 4
, 分别)。
Edit
我突然想到,我投射到 Ruby 中的功能实际上来自 Haskell:Haskell 中的列表中的“@”符号是什么意思?
不过,在 Ruby 中是否有一种优雅的方法可以实现同样的目的?