如何创建扩展以允许自定义类型的数组符合协议?

乔什·派拉多(Josh Paradroid)

我有一个自定义类型Banana,我想创建协议的扩展Array(或者,如果必须的话Sequence),Banana以符合协议,CustomStringConvertible以便description在数组上进行调用Banana将返回“一堆香蕉”。这可能吗?如果可以,我将如何去做呢?

zpasternack

简短的回答:不。

您可以限制扩展,但是受限制的扩展不能包含继承子句(上面链接Swift提案@Code Different正是您想要的)。

一种解决方法是制作受限制的扩展名,但只添加您自己的属性,而不是使其符合CustomStringConvertible

class Banana : CustomStringConvertible {
    var description: String {
        return "a banana"
    }
}

let aBanana = Banana()
aBanana.description // "a banana"

extension Array where Element: Banana {
    var bananaDescription: String {
        return "a bunch of bananas"
    }
}

let bananas = [Banana(), Banana(), Banana()]
bananas.bananaDescription // "a bunch of bananas"

同样值得一提的是,这Array已经符合CustomStringConvertible

let bananas = [Banana(), Banana(), Banana()]
bananas.description // "[a banana, a banana, a banana]"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义类型的Swift Enum符合可哈希协议

来自分类Dev

如何在Go中创建自定义类型元素的自定义类型数组?

来自分类Dev

Chrome扩展程序:自定义协议?

来自分类Dev

如何定义符合协议的对象数组?

来自分类Dev

如何创建自定义属性类型

来自分类Dev

用于查找自定义类型索引的数组扩展

来自分类Dev

如何为反应性扩展创建自定义扩展

来自分类Dev

如何为反应性扩展创建自定义扩展

来自分类Dev

Swift:声明扩展名,该类型数组符合协议

来自分类Dev

尝试自定义动画时符合UIViewControllerAnimatedTransitioning协议的错误

来自分类Dev

如何使用 Equatable 创建扩展以删除自定义数组元素?

来自分类Dev

创建自定义可扩展协议体系结构的最佳实践?

来自分类Dev

无法在Swift中创建符合协议的类型的数组

来自分类Dev

SwiftUI-如何创建和使用自定义类型的数组

来自分类Dev

如何使用“结构”作为数据类型和自定义方法创建python数组

来自分类Dev

如何正确扩展LinearLayout以创建自定义视图

来自分类Dev

关联(类型别名)类型和自定义协议如何工作?

来自分类Dev

如何使用类型参数符合协议的泛型数组?

来自分类Dev

如何创建自定义类型以始终表示具有一定数量元素的某些基本类型的数组?

来自分类Dev

.NET 4.5如何创建此自定义声明类型?

来自分类Dev

Echarts.js:如何创建自定义图表类型?

来自分类Dev

如何为特定类型创建自定义实现?

来自分类Dev

如何创建WIX类型35自定义动作

来自分类Dev

.NET 4.5如何创建此自定义声明类型?

来自分类Dev

如何为特定类型创建自定义实现?

来自分类Dev

如何重载Base.show自定义数组类型?

来自分类Dev

我如何推送到自定义类型数组

来自分类Dev

如何使用自定义类型声明 Arduino 数组?

来自分类Dev

如何为自定义属性类型选择创建自定义源模型?

Related 相关文章

  1. 1

    自定义类型的Swift Enum符合可哈希协议

  2. 2

    如何在Go中创建自定义类型元素的自定义类型数组?

  3. 3

    Chrome扩展程序:自定义协议?

  4. 4

    如何定义符合协议的对象数组?

  5. 5

    如何创建自定义属性类型

  6. 6

    用于查找自定义类型索引的数组扩展

  7. 7

    如何为反应性扩展创建自定义扩展

  8. 8

    如何为反应性扩展创建自定义扩展

  9. 9

    Swift:声明扩展名,该类型数组符合协议

  10. 10

    尝试自定义动画时符合UIViewControllerAnimatedTransitioning协议的错误

  11. 11

    如何使用 Equatable 创建扩展以删除自定义数组元素?

  12. 12

    创建自定义可扩展协议体系结构的最佳实践?

  13. 13

    无法在Swift中创建符合协议的类型的数组

  14. 14

    SwiftUI-如何创建和使用自定义类型的数组

  15. 15

    如何使用“结构”作为数据类型和自定义方法创建python数组

  16. 16

    如何正确扩展LinearLayout以创建自定义视图

  17. 17

    关联(类型别名)类型和自定义协议如何工作?

  18. 18

    如何使用类型参数符合协议的泛型数组?

  19. 19

    如何创建自定义类型以始终表示具有一定数量元素的某些基本类型的数组?

  20. 20

    .NET 4.5如何创建此自定义声明类型?

  21. 21

    Echarts.js:如何创建自定义图表类型?

  22. 22

    如何为特定类型创建自定义实现?

  23. 23

    如何创建WIX类型35自定义动作

  24. 24

    .NET 4.5如何创建此自定义声明类型?

  25. 25

    如何为特定类型创建自定义实现?

  26. 26

    如何重载Base.show自定义数组类型?

  27. 27

    我如何推送到自定义类型数组

  28. 28

    如何使用自定义类型声明 Arduino 数组?

  29. 29

    如何为自定义属性类型选择创建自定义源模型?

热门标签

归档