Добавление расширения Array для многомерных массивов в Swift? - PullRequest
0 голосов
/ 05 октября 2018

У меня есть матрица, т.е. массив массивов.Я хочу добавить несколько методов, чтобы лучше обрабатывать это как расширение Array.Я думал написать что-то вроде этого:

extension Array where Element == Array {
    // my methods
}

Но, увы, это не скомпилируется, так как я добавил рекурсивное определение.Конечно, я могу опустить часть where Element == Array, но кажется приятным прикосновение, чтобы эти методы показывались только при необходимости.Есть ли какой-то другой способ, которым это может быть достигнуто?

РЕДАКТИРОВАТЬ: согласно предложению @Leo Dabus, я приведу несколько вариантов использования:

У меня есть приложение, которое имеет несколько контроллеров табличного представления.В каждом из них есть разделы и ряды.Чтобы их заполнить, я использую два массива: один для имен разделов, а другой - массив массивов объектов (или структур) -> соответствующих разделов и строк в индексных путях.Поэтому я хочу написать методы для манипулирования массивом массивов на основе индекса пути.Например:

a[indexPath] = sender

Эти объекты различаются, некоторые являются простыми строками, некоторые более сложными

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Чтобы расширить массив массивов объектов (или структур) типа YourType, используйте это:

extension Array where Element == Array<YourType> { 
    //Your methods
}
0 голосов
/ 05 октября 2018

Попробуйте это:

extension Array where Element: Collection {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...