是否可以为协议创建仅 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 类型是——据我所知—— 不可能。