Swift的相等协议一致性检查

庆阮

我正在尝试Array通过以下功能扩展Swift的类:

func containsObjectIdenticalTo(obj: T) -> Bool {
    // objectPassingTest returns the first object passing the test
    return objectPassingTest { x in x == obj }
}

显然,这不会编译,因为编译器尚不知道是否==为type实现了T然后我将代码更改为此

func containsObjectIdenticalTo(obj: T) -> Bool {
    return objectPassingTest {
        x in
        assert(x is Equatable && obj is Equatable)
        return (x as Equatable) == (obj as Equatable)
    } != nil
}

这也不起作用,因为Equatable无法检查是否符合(因为Equatable未使用定义@obj

有什么想法吗?如果有某种方法可以直接声明是否T符合Equatable那就太好,但是我还没有在任何地方阅读过。在这些方面,Swift似乎没有Obj-C那样动态。

更新:尝试过此建议,但它不起作用(不知道它是干什么<T: Equatable>的,因为它确实可以编译)。

func containsObjectIdenticalTo<T: Equatable>(obj: T) -> Bool {
    var x = self[0]
    var y = self[0]
    return x == y // Error here
}
康纳

指定方法签名中的T必须等于:

func containsObjectIdenticalTo<T: Equatable>(obj: T) -> Bool {/*...*/}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift的等价协议一致性检查

来自分类Dev

Swift协议一致性

来自分类Dev

OpenTok / TokBox的Swift协议一致性错误

来自分类Dev

Swift:协议一致性-这是否是错误?

来自分类Dev

“ NSDate”与协议“ Comparable” Swift的冗余一致性

来自分类Dev

条件协议的一致性?

来自分类Dev

条件协议的一致性?

来自分类Dev

HKWorkoutSessionDelagate协议一致性

来自分类Dev

协议:一致性检查和可选要求为何需要@ObjC?

来自分类Dev

多种协议的Swift类一致性(XCode 7,iOS 9,Swift 2.1)

来自分类Dev

Swift 2.2中协议“ Equatable”的“泛型”冗余一致性

来自分类Dev

Swift 2协议扩展和对Objective-C类型的一致性

来自分类Dev

是否可以在Swift协议一致性扩展中添加类型约束?

来自分类Dev

返回泛型时的Swift协议一致性

来自分类Dev

通过非可选的Swift协议可选一致性

来自分类Dev

Swift多协议一致性,编译错误

来自分类Dev

Swift 2协议扩展和对Objective-C类型的一致性

来自分类Dev

如何在Swift中构造通用类型协议一致性?

来自分类Dev

<view controller> 对协议“UISearchBarDelegate”的冗余一致性 - Swift 4

来自分类Dev

缓存一致性中的MESI协议

来自分类Dev

**“ FlickrPhotosViewController”与协议“ UICollectionViewDataSource”的冗余一致性**

来自分类Dev

使用 `is` 与类型大小写的 Swift 检查一致性

来自分类Dev

在Objective-C中使用工厂方法时检查协议一致性

来自分类Dev

为什么不能在 Swift 中创建一组协议一致性对象?

来自分类Dev

如何启用Modelica单元一致性检查

来自分类Dev

如何检查CSV列的一致性?

来自分类Dev

如何使用autoconf检查POSIX一致性

来自分类Dev

冗余一致性错误消息Swift 2

来自分类Dev

Swift对集合的数组一致性

Related 相关文章

  1. 1

    Swift的等价协议一致性检查

  2. 2

    Swift协议一致性

  3. 3

    OpenTok / TokBox的Swift协议一致性错误

  4. 4

    Swift:协议一致性-这是否是错误?

  5. 5

    “ NSDate”与协议“ Comparable” Swift的冗余一致性

  6. 6

    条件协议的一致性?

  7. 7

    条件协议的一致性?

  8. 8

    HKWorkoutSessionDelagate协议一致性

  9. 9

    协议:一致性检查和可选要求为何需要@ObjC?

  10. 10

    多种协议的Swift类一致性(XCode 7,iOS 9,Swift 2.1)

  11. 11

    Swift 2.2中协议“ Equatable”的“泛型”冗余一致性

  12. 12

    Swift 2协议扩展和对Objective-C类型的一致性

  13. 13

    是否可以在Swift协议一致性扩展中添加类型约束?

  14. 14

    返回泛型时的Swift协议一致性

  15. 15

    通过非可选的Swift协议可选一致性

  16. 16

    Swift多协议一致性,编译错误

  17. 17

    Swift 2协议扩展和对Objective-C类型的一致性

  18. 18

    如何在Swift中构造通用类型协议一致性?

  19. 19

    <view controller> 对协议“UISearchBarDelegate”的冗余一致性 - Swift 4

  20. 20

    缓存一致性中的MESI协议

  21. 21

    **“ FlickrPhotosViewController”与协议“ UICollectionViewDataSource”的冗余一致性**

  22. 22

    使用 `is` 与类型大小写的 Swift 检查一致性

  23. 23

    在Objective-C中使用工厂方法时检查协议一致性

  24. 24

    为什么不能在 Swift 中创建一组协议一致性对象?

  25. 25

    如何启用Modelica单元一致性检查

  26. 26

    如何检查CSV列的一致性?

  27. 27

    如何使用autoconf检查POSIX一致性

  28. 28

    冗余一致性错误消息Swift 2

  29. 29

    Swift对集合的数组一致性

热门标签

归档