为什么我不能用swift更改if语句中的变量?

Ren*_*ene 0 xcode if-statement ios swift

我有一个简短的问题.为什么我不能在if语句中更改var Test的值?

if Status == 1{
    var Test = 1
}
else{
    var Test = 2
}

println(Test) // Error: Use of unresolved identifier 'Test'
Run Code Online (Sandbox Code Playgroud)

Sha*_*hai 6

因为Test超出了你的范围.Test在两个不同的if(){}范围中定义.Testif()范围之外声明将允许您在更广泛的范围内访问它.

var Test :Int

if Status == 1{
    Test = 1
}
else{
    Test = 2
}

println(Test) 
Run Code Online (Sandbox Code Playgroud)

编辑:无法推断未声明的变量(Test),因此建议指定变量类型(:= Int表示整数).如果存在任何其他类型的值,则会显示错误.