Swift 斯威夫特:我们需要在使用变量之前声明它吗?

Swift 斯威夫特:我们需要在使用变量之前声明它吗?,swift,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(teamSc

我对斯威夫特很陌生。我遇到这个问题完全是偶然的

这是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
语法声明其类型

作为C++中的语法(SWIFT是,在某种程度上,类似于C++),如果变量未被声明,则它应该是“不能被识别”。p>


提前谢谢

分数由
for
循环分配。其类型被推断为
individualScores
的任何元素。由于
individualScores
Int
[Int]
数组,因此
分数必须是
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)

它只存在于循环中,而不存在于循环中。它的类型被推断为枚举对象的元素类型(
Int
,因为
individualScores
是一个
[Int]
)。无法将变量分配给。谢谢!在我继续学习的过程中,我发现这种现象非常常见。仅在for循环中使用的变量总是使用这种非正式声明,它们在for循环外没有意义,对吗?是的,只有在for循环内才有意义,就像
i
in:
for(int i=0;i
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0

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

print(teamScore)