簡體   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