Содержание сайта
Главная Новичку Цитаты Реализации Статьи Документация
Компании Программы Ссылки Обсуждение Обсуждение 2 Гостевая

Метод SequenceableCollection>>doBettween:

Мне только что пригодился трюк Кент Бека.

Проблема в обходе соседних элементов коллекции. Т.е. я хочу выполнить некоторый код для 1-го и 2-го, 2-го и 3-го и т.д. элементов коллекции.

self children
     inject: nil
     into:
	  [:eachPrevious :eachNext |
	  eachPrevious notNil ifTrue: [...].
	  eachNext]

(Кент Бек)

Я написал метод

SequenceableCollection>>doBettween: binaryBlock
	self
		inject: nil
		into: 
			[:eachPrevious :eachNext | 
			eachPrevious ifNotNil:
				[binaryBlock value: eachPrevious value: eachNext].
			eachNext]

т.к. уже не раз испытывал в нем необходимость.

Alex Baran




Есть комментарии? Пишите.