是否可以为协议创建仅 class 扩展?
Is it possible to create class only extension for protocol?
Class 只有协议用法我清楚。我知道我可以做类似的事情:
protocol HashableClass: class, Hashable {}
但我想知道是否可以创建 class 唯一的扩展名:
extension Hashable: class {} / extension Hashable where Self is class {} ??
第二个问题是:是否可以创建非 class 协议(class 协议的对应部分)?
提前致谢。
所有class都隐式符合AnyObject
,所以你可以定义
一个 "class-only extension" 和
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?.)
将协议限制为非 class 类型是——据我所知——
不可能。
Class 只有协议用法我清楚。我知道我可以做类似的事情:
protocol HashableClass: class, Hashable {}
但我想知道是否可以创建 class 唯一的扩展名:
extension Hashable: class {} / extension Hashable where Self is class {} ??
第二个问题是:是否可以创建非 class 协议(class 协议的对应部分)?
提前致谢。
所有class都隐式符合AnyObject
,所以你可以定义
一个 "class-only extension" 和
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?.)
将协议限制为非 class 类型是——据我所知—— 不可能。