本地和全局变量

局部变量在函数,方法或闭包中定义:

func printSomething() {
    let localString = "I'm local!"
    print(localString)
}

func printSomethingAgain() {
    print(localString) // error
}

全局变量在函数,方法或闭包之外定义,并且不在类型中定义(在所有括号之外思考)。它们可以在任何地方使用:

let globalString = "I'm global!"
print(globalString)

func useGlobalString() {
    print(globalString) // works!
}

for i in 0..<2 {
    print(globalString) // works!
}

class GlobalStringUser {
    var computeGlobalString {
        return globalString // works!
    }
}

全局变量是懒惰定义的(请参阅惰性属性示例)。