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