【发布时间】:2022-02-03 03:02:02
【问题描述】:
我得到了这个闭包,现在我想使用Numeric 协议而不是Double,我该怎么做?
let test: (Double) -> Double = { value in
// some work ...
return value
}
到目前为止我尝试了什么:
let test<T>: (T) -> T where T: Numeric = { value in
// some work ...
return value
}
【问题讨论】:
-
这行不通,因为它不是具体类型。见这里:stackoverflow.com/a/25549841/1144632
-
您所描述的称为一等多态或谓语多态。斯威夫特不支持它。如果您编辑您的问题以解释您想要它的原因,我们或许可以帮助您找到替代设计。
标签: swift