关于*(inverse_splat(foo))
,它没有意义.splatting的结果通常是一系列对象,它们不是对象.这样的东西在Ruby中不存在.
而在这一点上,你似乎做出的假设,即,inverse_splat
并且*
可以互换的顺序,结果是错误的.
关于 inverse_splat(*(foo))
不可能有这样的逆.这是因为splat *
内部调用to_a
,这不是一对一的映射.
[[:a, 1], [:b, 2]].to_a # => [[:a, 1], [:b, 2]] {a: 1, b: 2}.to_a # => [[:a, 1], [:b, 2]]
只能在一对一地图上定义逆.
如果你忽视这些情况并想继续探索是否有某些东西接近它,那么接近的是[
...... ]
字面意思.