Рубиисты: Как это называется? - PullRequest
3 голосов
/ 18 июня 2010

Скажем, у меня есть пул перечислимых элементов, которые я хочу сгруппировать по атрибуту:

cars = Car.all.group_by(&:color)

Тогда я хочу перебрать те cars примерно так:

cars.inject([]) do |stack, (color, cars)|
  stack << cars.each do |car|
   ...
  end
end

Что такое термин для расширения блочной переменной (между скобками)?

Ответы [ 2 ]

3 голосов
/ 18 июня 2010

Я называю это деструктурирующим связыванием или деструктурирующим назначением , это то, что обычно называют в других языках программирования.В Ruby его часто называют множественное назначение или параллельное назначение .Если вы хотите знать, как он «официально» называется, вы можете посмотреть его в проекте спецификации ISO .

1 голос
/ 18 июня 2010

Это слабая форма сопоставления с образцом, одна из определяющих особенностей некоторых функциональных языков (ML, Haskell и их аналог). В Python это обычно называется распаковкой. Я не знаю, есть ли в Ruby конкретный термин для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...