假设我有一个可以按属性分组的枚举池:
cars = Car.all.group_by(&:color)
然后我想迭代那些cars
,如此:
cars.inject([]) do |stack, (color, cars)|
stack << cars.each do |car|
...
end
end
块变量扩展名的术语是什么(括号之间)?
答案 0 :(得分:3)
我称之为解构绑定或解构赋值,这就是它在其他编程语言中通常所称的内容。在Ruby中,它通常被称为多重赋值或并行赋值。如果你想知道它被“正式”调用的是什么,你可以在Draft ISO Specification中查找。
答案 1 :(得分:1)
这是模式匹配的弱形式,是某些函数语言(ML,Haskell及其同类)的定义特征之一。在Python中,它通常称为解包。我不知道Ruby是否有特定的术语。