Swift的泛型类的类型

Swift的泛型类的类型,第1张

概述我试图使一个泛型类型类型如下 class Cars<T> { ...}typealias SportCars = Cars 但是我正在收到一个编译错误,参考通用类型’Cars’需要< ...>中的参数. 现在,你已经发现,你不能用泛型进行这个 *** 作. typealias Foo = Array// Doesn't work: Reference to generic type 'Arr 我试图使一个泛型类型的类型如下
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的泛型类的类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1040484.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存