Попытка сделать этот распространенный быстрый шаблон более функциональным. для объекта в objects.allObjects {guard let _object = object as? SomeTypeOfObject else {continue} _object.subObject (subObject, ...

1
addzo 5 Янв 2021 в 19:30

1 ответ

Лучший ответ

Распространенным функциональным шаблоном является compactMap, а затем вызов метода с побочным эффектом в forEach. Это полностью устраняет guard:

objects.allObjects                           // Add `.lazy` if you don’t want to build the intermediary array
    .compactMap { $0 as? SomeTypeOfObject }
    .forEach { $0.subObject(subObject, objectStateChanged: changedState) }
0
Rob 5 Янв 2021 в 18:13