仅限类协议使用对我来说很清楚。我知道我可以这样做:
protocol HashableClass: class, Hashable {}
但我想知道是否可以创建仅限类的扩展名:
extension Hashable: class {} / extension Hashable where Self is class {} ??
第二个问题是:是否可以创建非类协议(仅与类协议相对应)?
提前谢谢。
答案 0 :(得分:4)
所有类都隐含地符合AnyObject
,因此您可以定义
a"仅限课程的扩展"与
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?。)
根据我所知,将协议限制为非类类型是 - 不可能。