在swift中将字典添加到字典中

时间:2014-12-04 06:34:44

标签: ios swift dictionary

根据此页面,可以将整个字典添加到另一个字典 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中执行此功能? 我应该逐个添加它们吗?

2 个答案:

答案 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