ios - (空)协议一致性测试
问题描述
这里有一些让我有点困惑的东西。
我已经为测试目的定义了这个空协议:
protocol Doable {
}
协议为空,我希望任何可能的类型都符合它。
但是当我使用这段代码来执行一个简单的协议一致性测试时,使用了两种方式。
if let _ = MyType.self as? Doable {
print("Doable match OK!!")
} else {
print("That doesn't match!!")
}
if MyType.self is Doable.Type {
print("Doable match OK!!")
} else {
print("That doesn't match!!")
}
结果我总是得到:它不匹配。
这是应该发生的事情吗?
还是我的测试或期望是错误的?
解决方案
即使一个类型满足协议的要求,它的一致性也必须明确说明。
推荐阅读
- papaparse - 如何将 Papa.parse 结果放入数组
- python - 如何将变量保存在文件中?
- python - 使用索引重建numpy数组
- javascript - 使用 Promise.all 在 Google 地图上放置标记 - 对象作为 React 子级无效(发现:[object Promise])
- r - 具有二分调节器和预测器以及四个连续调节器的调节中介
- javascript - 单击按钮时将图片附加到 div
- sql-server - 多个事务上的 READ UNCOMMITTED 隔离级别行为
- javascript - 在对象中调用函数而不访问对象属性
- php - codeigniter 个人资料页面编辑
- random - LibGDX 对 MathUtils.random() 的内部调用会干扰生成的随机数序列