func generic<T>(parameter: AnyObject) -> Bool { if parameter is T { return true } else { return false }}
但是我不知道该怎么称呼
generic<String>("Hello")
给我一个编译器错误:“不能显式地专门化通用函数
通用(“你好”)
执行所需的一种方法是添加与类型T相关的另一个参数.而不是传入虚拟值,您可以使用所需类型的元类型:
func generic<T>(parameter: AnyObject,type: T.Type) -> Bool { if parameter is T { return true } else { return false }}let o: AnyObject = "hello"generic(o,String.self) // truegeneric(o,Nsstring.self) // also truegeneric(o,Int.self) // false
但是,我会问你,你认为你在这里实现了什么?你实际上只是做一个功能:
o is String // trueo is Nsstring // trueo is Int // false
泛型点是一般地对参数进行 *** 作,但是您并没有给出函数任何特定类型的参数来实际执行任何工作(因此无法推断出一个).
总结以上是内存溢出为你收集整理的针对通用类型的Swift检查类型全部内容,希望文章能够帮你解决针对通用类型的Swift检查类型所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)