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



你能在不知道其数据类型的情况下在Swift中声明一个空集合(array, set, dictionary)吗?我正在关注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]()

在大多数情况下,当您不知道值的数据类型或具有不同的数据类型时,可以很好地工作。

相关内容

  • 没有找到相关文章

最新更新