swift - 在 Swift 中,Never 在哪里声明它符合 Error?
问题描述
像这样的代码
func alwaysSucceeds(_ completion: (Result<String, Never>) -> Void) {
completion(.success("yes!"))
}
alwaysSucceeds { result in
switch result {
case .success(let response):
print(response)
}
}
作品。但我找不到
extension Never: Error {}
在 Swift 标准库中,有人知道我在哪里可以找到它吗?
解决方案
Never
在实施过程中增加了对Error
协议的一致性
在 Swift 5 中。从基本原理:
出于同样的原因,符合
Hashable
并被Equatable
添加到 中Never
,核心团队认为,作为接受该提案的一部分,也应该添加符合Error
和被添加到。这两个额外的协议一致性都是在审查期间提出的。Comparable
Never
正如 Leo 指出的,实现可以在Policy.swift中找到:
@frozen
public enum Never {}
extension Never: Error {}
extension Never: Equatable, Comparable, Hashable {}
推荐阅读
- mysql - 有没有办法在 SQL 查询中将列分类为“始终为空”或“不包含空值”?
- python - 上传后如何在 Django 中显示图像?
- mongodb - 获取 MongoParseError:无效的消息大小:1347703880,允许的最大值:67108864
- selenium - 当我使用 Selenium Webdriver 测试 Salesforce Lightning 时,如何绕过登录页面?
- node.js - 猫鼬模式由 2 个字段唯一
- javascript - 来自数组的 D3 分组条形图
- python - 一起运行flask和sql alchemy时出错
- python - 如何在不手动登录的情况下使用 API 编辑谷歌表格?
- swift - 在 UITableViewCell 中保留开关按钮的状态 - Swift
- wso2 - 如何为 WSO2 中的身份验证配置外部 Web 服务 (REST)?