微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift - 声明没有数据类型的空集合?

如何解决Swift - 声明没有数据类型的空集合?

你能在不知道数据类型的情况下在 Swift 中声明一个空集合(数组、集合、字典)吗?我正在关注 Swift 网站的 100 天,但它没有提到如何声明一个空集合。我敢肯定,在某些情况下,您不知道要填充到此集合中的数据类型对吗?

例如,如果我想定义一个空字典:

var emptyDictionary = [String: String]()

但是如果我把它改成

var emptyDictionary = [Any: Any]()

它会抛出一个错误。数组和集合也是如此。

解决方法

类型为 Any 的数组可以编译;例如

let array = [Any]()

编译没有错误。但是,由于结构的性质,字典的键必须符合 Hashable。因此,通过将键设为 Hashable,您可以创建一个“any”类型的字典。

struct Foo<T: Hashable> {
    let dict = [T: Any]()
}

但是,将 Any 用作密钥并没有多大意义。使用类似

let dict = [String: Any]()

在您不知道值的数据类型或具有不同数据类型的大多数情况下都可以正常工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。