数组作为 Swift 字典中的值 : Cannot append values

标签 arrays swift dictionary append

我想要一个函数将对象 Something append 到 Somethings 数组,作为字典中的值。如果 key 不存在,我想创建它。如果theDictionary[aCategory]为空,则不会进入if var语句(因为是nil),所以我真的不知道如何解决它。我确信通过强制展开我会解决它,但我真的想使用更安全的方式,比如可选出价。

private var theDictionary: [Category:[Something]] = [:]
public func add(aSomething: Something, aCategory: Category{
    if var arrayOfSomethings = theDictionary[aCategory]{
        arrayOfSomethings.append(aSomething)
        theDictionary[aCategory] = arrayOfSomethings
    }
}

最佳答案

你只需要处理else条件:

if var arrayOfSomethings = theDictionary[aCategory]{
    arrayOfSomethings.append(aSomething)
    theDictionary[aCategory] = arrayOfSomethings
} else {
    theDictionary[aCategory] = [aSomething]
}

关于数组作为 Swift 字典中的值 : Cannot append values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43011889/

相关文章:

退出方法时 Java 数组丢失

c++ - 使用数组和结构的四分卫评级函数表现得很奇怪

swift 结合。如何转变出版商值(value)观

ios - Swift-如何添加像 Spotify 中那样的视差 header ?

c++ - 使用 Arduino 和 C++ 声明和写入数组的问题

javascript - 在js中创建if/then语句时,如何测试数组中的数据?

swift - 让断点打印调用函数的名称

c++ - 按时间范围向 std::map 添加内容,但按时间值查询

python - 比较 Python 中的两个树/图

python - 将列表中的可能值添加到 groupby 结果