在Swift中是否可以进行自定义综合条件一致性?

时间:2018-10-01 09:28:57

标签: swift generics protocols synthesize conform

是否有一种快速创建自定义协议的方法,并通过声明一些有关如何修改规则的规则使所有属性符合自定义协议,从而使编译器自动合成一致性。结合属性?

现在,标准的CodableEquatableHashable协议使用了这种行为,但是我不确定我们是否能够声明自己的协议来表现这种行为。

玩具示例:

我想用一个简单的例子来说明我要实现的例子。我创建了一个名为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

1 个答案:

答案 0 :(得分:0)

您可能想尝试 GYBSourcery