Swift统计一组数中各数出现的次数问题

本人Swift初学者,有个问题想请教下。有以下代码

var occurrences: [Int : Int] = [:]
for number in numbers {    
if var value = occurrences[number] {        
occurrences[number] = ++value     
} else {        
occurrences[number] = 1     
}
}

numbers是前一个函数的参数。value是number出现的次数。

语句读的懂,但实在看不明白。求大神解释一下。谢谢!

var occurrences: [Int : Int] = [:] 声明一个字典
for number in numbers { 遍历需要统计的数组
if var value = occurrences[number] { 从字典里取出数组对应数字
occurrences[number] = ++value 如果字典里出现了这个数字则++value统计数字
} else {

occurrences[number] = 1 如果字典里没有这个数字,则证明是第一次统计这个数赋值为1
}
}