【问题标题】:Unclear Swift coding不清楚的 Swift 编码
【发布时间】:2016-07-12 02:59:08
【问题描述】:
var occurences: [Int : Int] = [:]  
for number in numbers {  
  if var value = occurences[number] {  
    occurences[number] = ++value  
  } else {  
    occurences[number] = 1
  }  
}

我理解它声明一个空字典的前 2 行,并且我有一个数字数组要在 for-in 循环中迭代,但是请有人解释一下第 4 行和第 5 行。我只是不明白它如何声明哪个是键,哪个是值。非常感谢,在这里呆了两天。

【问题讨论】:

标签: swift function dictionary


【解决方案1】:

这一行

if var value = occurences[number] 

表示它检查occurences 是否为键number 存储了一些值,然后在下一行

 occurences[number] = ++value  

它使用++ 增加值,然后将其保存到occurences 字典中。

【讨论】:

  • ++value 将在 swift 3 中消失,应该用 value + 1 替换(因此也用 let 代替 var)。我知道,不是你的代码,但值得一提的是,在这个代码示例中 ++ 部分非常直观!
  • 同样适用于if var
  • @TofuBeer 在这种情况下,您将不得不这样做 value += 1 和(在下一行)occurences[number] = value
  • @VladimirNuloccurrences[number] = value + 1 根本不需要 ++ 或 +=
  • @TofuBeer 你是对的,在这种情况下它不是。我在考虑在循环之外设置值的情况。
猜你喜欢
  • 1970-01-01
  • 2015-09-13
  • 2013-03-05
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
  • 2012-11-26
  • 2015-03-09
相关资源
最近更新 更多