Swift 中如何使用字典类型作为泛型约束

今天学员群里有人提了这么一个问题,为什么把特性的字典类型作为泛型类型约束的时候,就必然报错?

用特定的字典类型作为泛型类型约束会报错



显然,说的很明确了,“你不能从一个非协议、非类的类型继承”。显然,字典是个泛型结构体……

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

有条件的协议遵循

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

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

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

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

测试结果

 

本文由 落格博客 原创撰写:落格博客 » Swift 中如何使用字典类型作为泛型约束

转载请保留出处和原文链接:https://www.logcg.com/archives/3101.html

About the Author

R0uter

如非声明,本人所著文章均为原创手打,转载请注明本页面链接和我的名字。

Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注