如何扩展在Swift中提取字典的键?

mimi

我正在为扩展密钥数组的扩展编写此代码,但无法为数组提供通用类型,该如何解决?

    extension Dictionary {

    func extractKeys() -> Array<T>  {
        
       return self.map({ $0.key }).sorted(by: { $0 < $1 } )
    }

}

更新:

extension Dictionary {
    
    var extractSortedKeysV2: [Key] where Key: Comparable {
        
        return self.map({ $0.key }).sorted(by: { $0 < $1 } )
        
    }
 
}
马丁·R

struct Dictionary<Key, Value>是一种泛型类型,其中Key是键Value的类型和值的类型。因此,您需要返回Array<Key>(或仅返回[Key])。

另外,为了对键进行排序,您必须要求Key符合Comparable协议:

extension Dictionary where Key: Comparable {
    func sortedKeys() -> [Key]  {
        return self.map({ $0.key }).sorted(by: { $0 < $1 } )
    }
}

这可以简化为

extension Dictionary where Key: Comparable {
    func sortedKeys() -> [Key]  {
        keys.sorted()
    }
}

或作为计算属性:

extension Dictionary where Key: Comparable {
    var sortedKeys: [Key] { keys.sorted() }
}

对于函数/方法,可以将约束附加到函数声明中:

extension Dictionary {
    func sortedKeys() -> [Key] where Key: Comparable {
        keys.sorted()
    }
}

使用计算的属性是不可能的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当字典的键匹配时如何从列中提取字符串

来自分类Dev

如何根据键的字符串提取字典的键?

来自分类Dev

如何从字符串中提取字典形式?

来自分类Dev

如何从字符串中提取字典形式?

来自分类Dev

从字典列表中提取键

来自分类Dev

从Pyspark中的RDD中提取字典

来自分类Dev

从字符串中提取字典

来自分类Dev

如何从字典列表中提取特定键的所有值?

来自分类Dev

如何从字典中的特定键中提取所有值?

来自分类Dev

如何从有条件的字典列表中提取字典

来自分类Dev

如何提取字典和子字典

来自分类Dev

如何在pandas数据框中提取字典列的值

来自分类Dev

Swift:获取字典中的键数

来自分类Dev

如何从字典中提取数据?

来自分类Dev

如何从嵌套字典中提取?

来自分类Dev

如何从NSFontAttributeName中提取字体名称?

来自分类Dev

从数据框中的列中提取字典值

来自分类Dev

从字符串中提取字典键值

来自分类Dev

从python中的嵌套列表中提取字典元素

来自分类Dev

在元组列表中的元组中提取字典的特定元素

来自分类Dev

如何提取字典之间的差异?

来自分类Dev

如何在Swift中从观察对象中提取字符串值

来自分类Dev

如何在 Swift 3 中从 URL 中提取字符串?

来自分类Dev

如何从没有逗号且键中没有值的字典中提取记录

来自分类Dev

如何从 python 字典中的列表中提取键的所有实例?

来自分类Dev

如何从此plist字典中提取数组?

来自分类Dev

如何对从字典中提取的值求和?

来自分类Dev

从具有键/元组对的字典中提取元组

来自分类Dev

Python 3-从嵌套字典的键中提取值