是否有一种方法可以快速创建自定义协议,并使编译器在所有属性都符合自定义协议时自动合成一致性,并就如何组合这些属性声明一些规则?
现在,标准的Codable、Equatable和Hashable协议使用这种行为,但我不确定我们是否能够声明我们自己的协议这样的行为。
玩具例子:
我想用一个简单的例子来说明我正试图实现的例子。我创建了一个名为Interpolatable的协议
protocol Interpolatable {
func interpolate(to endValue: Self, at ratio: CGFloat) -> Self
}我想要做的是声明一个名为Keyframe: Interpolatable的结构,它只存储符合Interpolatable协议的属性。
struct Keyframe: Interpolatable {
let customValue1: CustomValueType1 //conforms to Interpolatable
let customValue2: CustomValueType2 //conforms to Interpolatable
}现在,我希望能够在其他地方声明一种通用的方法,告诉编译器如何使这些类型实现必要的函数以符合Interpolatable协议。
这个是可能的吗?当然感觉非常,Schwifty,。
https://stackoverflow.com/questions/52588118
复制相似问题