【发布时间】:2014-11-15 13:45:38
【问题描述】:
我在玩 Swift。
为什么可以在 for 循环中声明 let 类型?据我所知,let 表示恒定,所以我很困惑。
func returnPossibleTips() -> [Int : Double] {
let possibleTipsInferred = [0.15, 0.18, 0.20]
//let possibleTipsExplicit:[Double] = [0.15, 0.18, 0.20]
var retval = Dictionary<Int, Double>()
for possibleTip in possibleTipsInferred {
let inPct = Int(possibleTip * 100)
retval[inPct] = calcTipWithTipPct(possibleTip)
}
return retval
}
【问题讨论】:
-
let定义了一个基于范围的常量——在你的情况下是在 for 循环中。这基本上意味着不可能为用“let”声明的变量分配新值。 -
认为
var是Mutable而let是Immutable而不是一个常数。