Почему Ruby Array.map () также называется Array.collect ()? - PullRequest
3 голосов
/ 02 июля 2010

Всякий раз, когда я вижу код Ruby, который говорит:

arrayNames.collect { ... }

Я забываю, что такое коллекционирование, и мне приходится искать, что это такое, и обнаруживать, что он такой же, как map ().

Карта, я могу понять, отображение 1 байта на пиксель, и функция состоит в том, чтобы отобразить x на ay, 2 на 4, 5 на 25 и т. Д. Но откуда берется название «собирать»?Может быть, это поможет вспомнить, что такое метод сбора.

Ответы [ 3 ]

5 голосов
/ 02 июля 2010

Это происходит из давних времен Smalltalk.Smalltalk использовал collect и select вместо map и filter (как используется во многих других языках) для итерации своих коллекций.

4 голосов
/ 03 июля 2010

Чтобы добавить к другим ответам, это небольшая шутка в Smalltalk:

  • inject:into:
  • collect:
  • select:
  • reject:
  • detect:

Определить образец?

3 голосов
/ 02 июля 2010

kriss правильно, что имя метода берет свое начало в Smalltalk, но чтобы вспомнить, что он делает, когда вы видите его использование, вы можете думать о нем как о «сборе результатов из блока в новом массиве». ».

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