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

标签 swift

我是 swift 的新手。我很偶然地遇到了这个问题。

这是The Swift Programming Language(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++),如果变量没有被声明,它应该是“无法识别”。

提前致谢。

最佳答案

scorefor 循环分配。它的类型被推断为 individualScores 的元素是什么。由于 individualScoresInt[Int]Arrayscore 必须是一个 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)

关于Swift:我们需要在使用变量之前声明它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34734442/

相关文章:

swift - swift underscore 的正式名称是什么?

ios - UITableView 未在 UIStackView 中显示

swift - 在 Swift 命令行应用程序中捕获信号

ios - 无法将类型 'String?.Type' 的值转换为预期参数类型 'String?'

ios - 对成员 animate 的模糊引用

ios - canOpenURL 在 iOS 10 中不起作用

ios - SwiftUI 中另一个按钮内的按钮

swift - UN用户通知中心。此应用程序不允许通知

ios - 从remoteURL预览pdf时出现问题

ios - 如何在打开和关闭 UIswitch 时上下移动标签?