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

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

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

顯然,說的很明確了,“你不能從一個非協議、非類的類型繼承”。顯然,字典是個範型結構體……

那麼解決思路也很明確了,創建一個類來裝飾個字典或許是個不錯的選擇但太麻煩,那麼就從協議上下手。

有條件的協議遵循

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

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

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

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

测试结果

 

由...出版 R0uter

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

發表評論

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