[英]Swift array of generic closures?
可能吗? 错误Only syntatic function types can be generic
提示不是。
有效码
func test<T:Equatable>(function: (T) -> T){
var myArray:Array<T -> T> = [function];
}
现在,我想创建一个与myArray
类型相同的属性。 我觉得我应该能够以某种方式做到这一点。
不起作用
var myArray:<T:Equatable>(T -> T)[]
有任何想法吗?
即使这样:
func test<T:Equatable>(function: (T) -> T){
var myArray:Array<T -> T> = function;
}
无效。 您正在将T->T
分配给Array<T->T>
。 至少应为:
var myArray:Array<T -> T> = [function];
这将工作:
class MyClass<T> {
var myArray:(T->T)[] = []
}
由于您现在有了一个通用的MyClass类,因此要初始化,您需要知道T
是什么类型,如下所示:
var x = MyClass<String>()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.