繁体   English   中英

快速数组的通用闭包?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM