swift - 是否可以为协议(protocol)创建仅类扩展?

标签 swift class swift-protocols

我很清楚仅类协议(protocol)的用法。我知道我可以做类似的事情:

protocol HashableClass: class, Hashable {}

但我想知道是否可以创建仅类扩展:

extension Hashable: class {} / extension Hashable where Self is class {} ??

第二个问题是:是否可以创建非类协议(protocol)(类协议(protocol)的对应部分)?

提前谢谢你。

最佳答案

所有类都隐含地符合AnyObject,因此您可以定义 一个“仅限类的扩展”

extension Hashable where Self: AnyObject {

}

(protocol Foo: class 之间似乎也没有区别 和 protocol Foo: AnyObject,比较 What's the difference between a protocol extended from AnyObject and a class-only protocol? .)

据我所知,将协议(protocol)限制为非类类型是—— 不可能。

关于swift - 是否可以为协议(protocol)创建仅类扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37572470/

相关文章:

ios - 使用 Firebase Analytics 事件记录 OneSignal 推送通知

java - 为什么 inc/dec channel 不执行任何操作?

swift - 我可以从该协议(protocol)中获取符合该协议(protocol)的类型的名称吗?

swift - 我可以强制 Swift 代码使用所有内核吗?

ios - 重置自定义表格单元格中所有 UITextfield 的值

c# - 如何循环类的字段名称

Swift:符合协议(protocol)中的属性?

swift - 在 Swift 中指定协议(protocol)之间的关系

Swift tableView cell set 附件类型

Android:如何在不同的文件中使用类