本地和全域性變數

區域性變數在函式,方法或閉包中定義:

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!
    }
}

全域性變數是懶惰定義的(請參閱惰性屬性示例)。