Я пытался выяснить, но не смог найти ни одного решения.Итак, спрашиваю вас, ребята.
Есть ли шанс написать функцию, возвращаемую как универсальный тип?
У меня есть структура, как показано ниже
struct WWSInterest: Unboxable {
var confirmation: Bool
var data: [WWSKeyValue]?
var message: String?
init(unboxer: Unboxer) throws {
self.confirmation = try! unboxer.unbox(key: "confirmation")
self.data = try? unboxer.unbox(key: "data")
self.message = try? unboxer.unbox(key: "message")
}
// static func createFrom(data: Data) -> WWSInterest? {
// do {
// let r: WWSInterest = try unbox(data: data)
// return r
// } catch {
// return nil
// }
// }
}
и яхочу помочь, как показано ниже
func create<T>(from data: Data) -> T? {
do {
let r: T = try unbox(data: data)
return r
} catch {
return nil
}
}
Возможно ли это?
Кстати: простите, мой плохой английский
// Edit
WWSKeyValue имеет следующую структуру,
struct WWSKeyValue: Unboxable {
var key: String
var value: String
init(unboxer: Unboxer) throws {
self.key = try! unboxer.unbox(key: "key")
self.value = try! unboxer.unbox(key: "value")
}
}