是否可以为协议创建仅类扩展?
Posted
技术标签:
【中文标题】是否可以为协议创建仅类扩展?【英文标题】:Is it possible to create class only extension for protocol? 【发布时间】:2016-06-01 15:07:43 【问题描述】:我很清楚仅使用类协议。我知道我可以这样做:
protocol HashableClass: class, Hashable
但我想知道是否可以创建仅类扩展:
extension Hashable: class / extension Hashable where Self is class ??
第二个问题是:是否可以创建非类协议(仅类协议的对应部分)?
提前谢谢你。
【问题讨论】:
【参考方案1】:所有类都隐式符合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?.)
将协议限制为非类类型——据我所知—— 不可能。
【讨论】:
以上是关于是否可以为协议创建仅类扩展?的主要内容,如果未能解决你的问题,请参考以下文章