我希望在可能的情况下扩展Array
以将数组转换为集合.下面的扩展可以做到这一点,但在调试器控制台中,集合的元素被显式标记为AnyHashable
.为甚麽会这样呢?但更重要的是,有没有办法确定扩展中元素的具体类型(即String
),以便它返回类型匹配集?
extension Array where Element: Hashable {
var asSet: Set<AnyHashable> {
return Set(self)
}
}
let someArray: [String] = ["kiwi", "mango", "mango"]
print(someArray.asSet) // actual output: [AnyHashable("kiwi"), AnyHashable("mango")]
// desired output: ["kiwi", "mango"]