Swift 中如何使用字典類型作為範型約束

今天學員群裡有人提了這麼一個問題,為什麼把特性的字典類型作為範型類型約束的時候,就必然報錯?

用特定的字典類型作為範型類型約束會報錯

顯然,說的很明確了,“你不能從一個非協議、非类的类型继承”。顯然,字典是个范型结构体……

那么解决思路也很明确了创建一个类来装饰个字典或许是个不错的选择但太麻烦那么就从协议上下手

有条件的协议遵循

我们可以给字典这个结构体进行扩展让它遵循一个我们的空协议

但注意这里我们限定条件即字典的 Key 必须是 String 类型

内容全部为空因为不用做任何额外的操作

這樣,我们就可以用这个协议来进行约束了如果字典的类型不符合要求那么这个字典就不会遵循我们的协议

测试结果

 

由...出版 R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

發表評論

您的電子郵件地址不會被公開. 必填字段標 *