Как в расширении определить вычисляемое свойство с типами заполнителей? - PullRequest
0 голосов
/ 06 августа 2020

В моем проекте есть следующий код:

extension Array {
    func unzip<A, B>() -> ([A], [B]) where Element == (A, B) {
        reduce(into: ([], [])) {
            $0.0.append($1.0)
            $0.1.append($1.1)
        }
    }
}

Он компилируется и работает именно так, как я бы хотел - любой экземпляр массива кортежей можно «разархивировать» на два массива типы, которые соответствуют первому и второму элементам кортежа.

Но по соображениям стиля я бы предпочел, чтобы это было вычисляемым свойством, а не функцией, чтобы оно выполнялось как tupleArray.unzipped вместо tupleArray.unzip(). Как мне это сделать?

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