func myGenericFunction< T>() – > T {}
我可以设置泛型将使用的类
let _:Bool = myGenericFunction()
有没有办法做到这一点所以我不必在另一条线上单独定义变量?
例如:anotherFunction(myGenericFunction():Bool)
解决方法 编译器需要一些上下文来推断类型T.变量赋值,可以使用类型注释或强制转换来完成:
let foo: Bool = myGenericFunction()let bar = myGenericFunction() as Bool
如果anotherFunction接受Bool参数
anotherFunction(myGenericFunction())
只是工作,然后从参数类型推断出T.
如果anotherFunction采用泛型参数,那么
演员再次工作:
anotherFunction(myGenericFunction() as Bool)
另一种方法是将类型作为参数传递
代替:
func myGenericFunction<T>(_ type: T.Type) -> T { ... }let foo = myGenericFunction(Bool.self)anotherFunction(myGenericFunction(Bool.self))总结
以上是内存溢出为你收集整理的在swift中设置通用T返回的类型全部内容,希望文章能够帮你解决在swift中设置通用T返回的类型所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)