14、灵活代码与数据持久化:泛型与 Core Data 应用

灵活代码与数据持久化:泛型与 Core Data 应用

1. 泛型为代码增添灵活性

编程中使用泛型并非易事,但它能让代码极具灵活性。使用泛型时,往往需要在程序的简单性和代码的灵活性之间进行权衡。有时,引入一点复杂性是值得的,因为这样可以实现原本无法实现的代码编写方式。

例如,之前提到的 Cow 结构体。为了在 HerbivoreType 协议中指定泛型关联类型,在 Cow 结构体中添加了类型别名。但如果并非所有奶牛都喜欢吃草,有些奶牛可能更喜欢花、玉米或其他东西,使用类型别名就无法表达这种情况。

为了表示每个 Cow 实例可能使用不同的 PlantType ,可以直接为 Cow 结构体添加泛型,示例代码如下:

struct Cow<Plant: PlantType>: HerbivoreType {
    var plantsEaten = [Plant]()
}

< > 之间,泛型类型名被指定为 Plant ,且该泛型受 PlantType 类型约束,即任何充当 Plant 的类型都必须符合 PlantType 。此时协议会识别到 Cow 有泛型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值