博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数的泛型约束是函数签名的一部分,不符合约束的初始调用将不能查找到函数(报错)...
阅读量:6654 次
发布时间:2019-06-25

本文共 1203 字,大约阅读时间需要 4 分钟。

  1. Type constraints, as described in , enable you to define requirements on the type parameters associated with a generic function, subscript, or type.

 

  1. func allItemsMatch<C1: Container, C2: Container>
  2. (_ someContainer: C1, _ anotherContainer: C2) -> Bool
  3. where C1.Item == C2.Item, C1.Item: Equatable {
  4. // Check that both containers contain the same number of items.
  5. if someContainer.count != anotherContainer.count {
  6. return false
  7. }
  8. // Check each pair of items to see if they're equivalent.
  9. for i in 0..<someContainer.count {
  10. if someContainer[i] != anotherContainer[i] {
  11. return false
  12. }
  13. }
  14. // All items match, so return true.
  15. return true
  16. }

 

The following requirements are placed on the function’s two type parameters:

  • C1 must conform to the Container protocol (written as C1: Container).
  • C2 must also conform to the Container protocol (written as C2: Container).
  • The Item for C1 must be the same as the Item for C2 (written as C1.Item == C2.Item).
  • The Item for C1 must conform to the Equatable protocol (written as C1.Item: Equatable).

The first and second requirements are defined in the function’s type parameter list, and the third and fourth requirements are defined in the function’s generic where clause.

转载地址:http://swxto.baihongyu.com/

你可能感兴趣的文章
Extjs Tree增加搜索功能
查看>>
浏览器内核揭秘
查看>>
学习笔记 124: 预备知识总结
查看>>
MySQL-MySQL索引原理深入剖析
查看>>
Mybatis源码-XXXmapper.xml中的resultMap标签解析过程
查看>>
db-link创建过程
查看>>
MS UC 2013-0-虚拟机-标准化-部署-2-模板机-制作-1-部署-虚拟机
查看>>
JAVA性能测试初体验
查看>>
【迁移2015-09-23 19:46】HTTPSQS(二)
查看>>
IOS 在.m文件中改变XIB中控件位置
查看>>
PLSQL连接ORACLE需要配置些什么
查看>>
Open××× 使用"用户名/密码"登录验证
查看>>
CentOS5.6下使用pptp架设***
查看>>
“锁定”语句 lock(C# 参考)
查看>>
TCP-IP协议详解(10) TCP滑窗管理
查看>>
Linux学习笔记一:VI高级功能
查看>>
HtmlEmail邮件发送
查看>>
在IBM服务器上安装window操作系统,如何识别大于2T的硬盘
查看>>
我国电子商务B2C市场和C2C市场规模的变化
查看>>
Javascript编写类的混合方式
查看>>