如何指定在Swift中强制执行下标的一般约束?

神话

我如何定义一个关系,该关系指定在我的一般约束T支持Int下标,以便此函数进行编译?

func index<T,U>(x:T) -> U {
    return x[0] //Invalid capability as expected
}

我的第一个猜测是T[Int] == U,我可以在其中指定的位置T可以用anIntreturn索引U,即:

func index<T,U where T[Int] == U>(x:T) -> U {
    return x[0]
}

但是,这种组合语法不起作用。无论如何,我可以将这种关系指定为一般约束还是协议?

短跑

您可以使用实现下标功能的协议。例如:

protocol Container {
    typealias ItemType
    mutating func append(item: ItemType)
    var count: Int { get }
    subscript(i: Int) -> ItemType { get }
}


func index<T:Container, U where U == T.ItemType>(x:T) -> U {
    return x[0]
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL:如何使用约束强制执行功能依赖关系?

来自分类Dev

Websphere:未强制执行web.xml中的安全性约束

来自分类Dev

如何使用Regex强制执行一行?

来自分类Dev

如何在接口上创建一般约束的属性?

来自分类Dev

如何在Perl中强制执行long double

来自分类Dev

添加一般约束

来自分类Dev

在Neo4j中,我可以强制执行关系+节点值约束吗?

来自分类Dev

在MyBatis中强制执行长度检查约束的方法

来自分类Dev

如何在Chrome中强制执行504错误

来自分类Dev

如何在vb.net中调试强制执行?

来自分类Dev

如何在.Net中强制执行OutOfMemoryException

来自分类Dev

如何在视图上强制执行约束,以确保在MSSQL中返回0行

来自分类Dev

如何在for循环中强制执行多个QComboBox中的任何一个的最小索引?

来自分类Dev

Websphere:未强制执行web.xml中的安全性约束

来自分类Dev

我可以在Swift中强制执行协议构架吗?

来自分类Dev

如何在Perl中强制执行long double

来自分类Dev

在Neo4j中,我可以强制执行关系+节点值约束吗?

来自分类Dev

如何在Java中强制执行构造函数

来自分类Dev

如何在GNOME Web中强制执行大文本?

来自分类Dev

如何从域名中删除www并强制执行https?

来自分类Dev

如何在Jenkins DSL中强制执行参数排序?

来自分类Dev

如何在matplotlib中的网格内强制执行图?

来自分类Dev

MongoDB 在集合中的文档之间强制执行复杂的约束

来自分类Dev

如何在 Antlr 中强制执行某些规则

来自分类Dev

在 Spring JPA 中强制执行主键约束

来自分类Dev

基于外键强制执行唯一约束

来自分类Dev

如何在 Java <= 8 中强制执行模块边界

来自分类Dev

一般识别导致 SQLite 中约束冲突的 rowid

来自分类Dev

如何在两点之间强制执行约束

Related 相关文章

  1. 1

    SQL:如何使用约束强制执行功能依赖关系?

  2. 2

    Websphere:未强制执行web.xml中的安全性约束

  3. 3

    如何使用Regex强制执行一行?

  4. 4

    如何在接口上创建一般约束的属性?

  5. 5

    如何在Perl中强制执行long double

  6. 6

    添加一般约束

  7. 7

    在Neo4j中,我可以强制执行关系+节点值约束吗?

  8. 8

    在MyBatis中强制执行长度检查约束的方法

  9. 9

    如何在Chrome中强制执行504错误

  10. 10

    如何在vb.net中调试强制执行?

  11. 11

    如何在.Net中强制执行OutOfMemoryException

  12. 12

    如何在视图上强制执行约束,以确保在MSSQL中返回0行

  13. 13

    如何在for循环中强制执行多个QComboBox中的任何一个的最小索引?

  14. 14

    Websphere:未强制执行web.xml中的安全性约束

  15. 15

    我可以在Swift中强制执行协议构架吗?

  16. 16

    如何在Perl中强制执行long double

  17. 17

    在Neo4j中,我可以强制执行关系+节点值约束吗?

  18. 18

    如何在Java中强制执行构造函数

  19. 19

    如何在GNOME Web中强制执行大文本?

  20. 20

    如何从域名中删除www并强制执行https?

  21. 21

    如何在Jenkins DSL中强制执行参数排序?

  22. 22

    如何在matplotlib中的网格内强制执行图?

  23. 23

    MongoDB 在集合中的文档之间强制执行复杂的约束

  24. 24

    如何在 Antlr 中强制执行某些规则

  25. 25

    在 Spring JPA 中强制执行主键约束

  26. 26

    基于外键强制执行唯一约束

  27. 27

    如何在 Java <= 8 中强制执行模块边界

  28. 28

    一般识别导致 SQLite 中约束冲突的 rowid

  29. 29

    如何在两点之间强制执行约束

热门标签

归档