我很快乐。我偶然遇到了这个问题。
这是 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 ++类似),如果尚未声明变量,则应该“无法识别”。
提前致谢。
答案 0 :(得分:5)
score
由for
循环分配。它的类型推断为individualScores
的元素。由于individualScores
是Array
Int
或[Int]
,score
必须是Int
。因此,在这种情况下,您不需要正式声明其类型。
与闭包有类似的行为,您可以在不使用let
或var
正式声明变量的情况下为变量命名。例如:
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
individualScores.forEach {
score in
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
print(teamScore)