Настройка описания коллекции (и других встроенных типов) в Swift - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь настроить description типа Collection (например, Array), особенно когда Iterator.Element является каким-то конкретным типом. Однако я не уверен, как это сделать, поскольку, как только я пытаюсь расширить Collection в соответствии с протоколом CustomStringConvertible, компилятор жалуется, что Collection не может иметь предложение о наследовании (и если я не не объявляет CustomStringConvertible о соответствии, реализация description, похоже, игнорируется). Можно ли настроить description для Collection типов?

// Attempt 1
extension Collection: CustomStringConvertible where Iterator.Element == MyType {
  var description: String {
    // this produces a compile error
    return "something"
  }
}

// Attempt 2
extension Collection where Iterator.Element == MyType {
  var description: String {
    // this is ignored
    return "something"
  }
}

В более общем смысле, можно ли настроить description для встроенных типов?

extension Double: CustomStringConvertible {
  var description: String { return "hi" }
  // this is also ignored + warning by compiler
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...