
class Cars<T> { ...}typealias SportCars = Cars 但是我正在收到一个编译错误,参考通用类型’Cars’需要< ...>中的参数.
现在,你已经发现,你不能用泛型进行这个 *** 作.typealias Foo = Array// Doesn't work: Reference to generic type 'Array' requires argument in <...>
Swift编程语言iBook章节“类型别名声明”实际上并没有说明哪些类型不能被别名.但它只是看起来像是不允许的部分类型(如没有指定占位符的泛型).
如果你觉得Swift应该做的这件事情,应该向苹果提交一个雷达(BUGreport).
在研究这个答案的同时,我注意到部分类型的问题不仅影响类型,而且在其他地方也是可见的:
let foo = Array.self// Doesn't work: Cannot convert the Expression's type 'Array<T>.Type' to type 'Array<T>.Type'// … which is a very confusing error.var bar: Array.Type// Doesn't work: Reference to generic type 'Array' requires arguments in <...>let bar: Array.Type = Array.self// …/usr/bin/swift: Segmentation fault! :-)
如果您指定占位符类型,则所有这些都可以工作:
typealias Foo = Array<Int> // Workslet foo = Array<Int>.self // Works总结
以上是内存溢出为你收集整理的Swift的泛型类的类型全部内容,希望文章能够帮你解决Swift的泛型类的类型所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)