swift - Swift 中具有新泛型类型的泛型类型扩展
问题描述
我想Array<Element>
用一个约束来扩展泛型类型,Element
这取决于另一个泛型类型,例如Element == Optional<Wrapped>
.
在不是泛型的情况下Element
,很容易:
extension Array where Element == String {
func merge() -> String { ... }
}
我尝试了以下,但编译器不接受它。
extension Array<Wrapped> where Element == Optional<Wrapped> {
func merge() -> Optional<Wrapped> { ... }
}
在这种情况下我应该使用什么语法?提前致谢!
解决方案
您可以改为对方法施加约束:
extension Array {
func merge<T>() -> T? where Element == T? {
// ...
}
}
推荐阅读
- c - 为什么 OpenMP 减少在共享内存结构上比 MPI 慢?
- python - 如何计算 k 折交叉验证的准确率、精度、召回率、f1_score 或修复此代码?
- java - Java中的CDT到EST时间转换未格式化
- python - python - 如何倒计时直到生日(两个日期之间)
- python - 如何使用 Python Selenium 找出网站中存在的特定元素?
- ruby - Kafka 错误:未知分区 (unknown_partition)
- python - 我正在尝试在机器人框架的测试模板中设置测试变量
- reactjs - 从不同文件中的类调用函数 - React
- java - 有没有办法使用 anyNonEmptyString 而不是 anyString
- reactjs - 如何将规范化 CSS 添加到 Storybook?