Swift:我们需要在使用之前声明变量吗?

时间:2016-01-12 02:05:56

标签: swift

我很快乐。我偶然遇到了这个问题。

这是 Swift编程语言(Swift 2.1)中的一个例子。

let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
    if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }
}
print(teamScore)

可以看出,score是上面代码部分中的变量。但它在使用之前显然没有声明。我的意思是,没有这样的语法:

var score: Int

var score = 0

我只是想知道为什么或如何做到这一点,使用变量而不用var语法声明其类型。

由于C ++中的语法(Swift在某种程度上与C ++类似),如果尚未声明变量,则应该“无法识别”。

提前致谢。

1 个答案:

答案 0 :(得分:5)

scorefor循环分配。它的类型推断为individualScores的元素。由于individualScoresArray Int[Int]score必须是Int。因此,在这种情况下,您不需要正式声明其类型。

与闭包有类似的行为,您可以在不使用letvar正式声明变量的情况下为变量命名。例如:

let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0

individualScores.forEach {
    score in
    if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }
}

print(teamScore)