ios - swift 将字典添加到字典

标签 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 中实现这个功能? 我应该将它们 1 加 1 吗?

最佳答案

您所指的页面是错误的,+= 不是字典的有效运算符,尽管它适用于数组。如果您想查看所有已定义的 += 运算符,您可以在 playground 的顶部编写 import Swift 并按住 command 并单击 Swift,然后搜索 +=。这会将您带到定义了所有主要 Swift 类型和函数的文件。

您链接到的页面还在数组部分包含一些其他关于快速浏览的错误信息,它说您可以这样做:array += "four"。所以,不要太相信这个页面。我相信您曾经能够在 Swift 的早期版本中将这样的元素附加到数组中,但它已更改。

好消息是,使用 Swift,您可以定义自己的自定义运算符!以下是应该做你想做的快速实现。

func +=<U,T>(inout lhs: [U:T], rhs: [U:T]) {
    for (key, value) in rhs {
        lhs[key] = value
    }
}

关于ios - swift 将字典添加到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27287726/

相关文章:

java - Java有没有存储键值对的数据结构,相当于C#中的IDictionary?

c++ - 如何使用静态函数填充静态 std::map?

ios - 如何在 Swift SpriteKit 中访问另一个 SKScene 的变量

ios - Objective-C内存管理:什么时候使用`[variable release]`vs`variable = nil`来清理内存?

ios - Alamofire 4.0 上传 MultipartFormData header

swift - 'fileExists' 产生 'Bool' ,而不是预期的上下文结果类型 'Bool'

c# - 在重新启动之前,PowerShell设置的驱动器标签将持续存在且不可更改

ios - UIImage 不会显示在屏幕上

ios - 设置变量后 UICollectionView 为 nil

Swift:泛型类中的声明