根据此页面,可以将整个字典添加到另一个字典 http://code.tutsplus.com/tutorials/an-introduction-to-swift-part-1--cms-21389
但运行代码给了我编译错误
var dictionary = ["cat": 2,"dog":4,"snake":8]; // mutable dictionary
dictionary["lion"] = 7; // add element to dictionary
dictionary += ["bear":1,"mouse":6]; // add dictionary to dictionary
错误:
[string: Int] is not identical to UInt8
有没有正确的方法在swift中执行此功能? 我应该逐个添加它们吗?
答案 0 :(得分:6)
您所指的页面错误,+=
不是字典的有效运算符,尽管它适用于数组。如果您想查看所有定义的+=
运算符,可以在游乐场顶部写import Swift
并命令+点击Swift
,然后搜索+=
。这将带您进入定义所有主要Swift类型和函数的文件。
您链接到的页面还包含有关快速浏览阵列部分的其他一些错误信息,其中表示您可以执行此操作:array += "four"
。所以,不要太信任这个页面。我相信你以前能够将这样的元素附加到早期版本的Swift中的数组中,但它已被更改。
好消息是,使用Swift,您可以定义自己的自定义运算符!以下是快速实现,应该做你想要的。
func +=<U,T>(inout lhs: [U:T], rhs: [U:T]) {
for (key, value) in rhs {
lhs[key] = value
}
}
答案 1 :(得分:3)
当swift抱怨某些内容与UInt8不同时,几乎总是存在错误,代码中的转换错误可能并不明显,尤其是在复杂的表达式中。
这种情况下的问题是没有为该数据类型定义+和+ =运算符。这里描述了一种非常好的连接数组的方法:
How do you add a Dictionary of items into another Dictionary