Как проверить, что тип generi c может быть преобразован в строку в Swift - PullRequest
0 голосов
/ 02 апреля 2020

Как проверить, можно ли преобразовать тип Generi c в String? Как показано ниже,

class Stack<T> {
    var values = [T]()

    func debugPrint() {
        values.map {
          String($0) // How to check if $0 can be converted to String?
        }
    }
}

1 Ответ

2 голосов
/ 02 апреля 2020

Если вы хотите, чтобы ваш класс обрабатывал только те типы, которые могут быть преобразованы в строку, то измените определение универсального типа так, чтобы T соответствовало LosslessStringConvertible

class Stack<T:LosslessStringConvertible> 

Если, с другой стороны, вас интересует только в получении строки для печати вы можете использовать String(describing:)

 values.map {
    String(describing:$0)
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...