如何通过函数发送泛型值?

时间:2017-04-04 17:58:21

标签: swift

我有一个示例类,其中包含特定类型的自定义实现:

class Test<T> {
fileprivate var v : T
    init (_ val : T) { v = val }
    func t() -> T { print("Default. \(T.self)");  return v }
}

extension Test where T == UInt8 {
    func t() -> T { print("Specific. \(T.self)"); return v }
}

样品使用:

_ = Test<UInt8>(10).t() // Specific. UInt8
_ = Test<Int>(5).t() // Default. Int

现在我试图遍历这个功能

func call<T>(t type: T.Type) -> T {
    return Test<T>(8).t() // 'Int' is not convertible to 'T'
}

_ = call(t: UInt8.self)
_ = call(t: Int.self)

如果方法返回通用值,如何解决此错误或如何使用协议?

0 个答案:

没有答案