swift學習之關鍵字inout

  一般參數僅僅是在函數內可以改變的,當這個函數執行完後變量就會被銷燬,不會有機會改變函數以外的變量,那麼我們就會產生一個疑問,我們可不可以通過一個函數改變函數外面變量的值呢?答案是肯定的,這時我們就需要用到inout關鍵字了

  聲明函數時,在參數前面用inout修飾,在函數內部實現改變外部參數,注意,這裏只能傳入變量,不能傳入常量和字面量,因爲這些是不能變的一旦定義,當我們傳入的時候,在變量名字前面用&符號修飾表示,傳遞給inout參數,表明這個變量在參數內部是可以被改變的

注意:inout修飾的參數是不能有默認值的,有範圍的參數集合也不能被修飾,另外,一個參數一旦被inout修飾,就不能再被var和let修飾了

override func viewDidLoad() {
        super.viewDidLoad()
        var someInt = 7
        var anotherInt = 107
        swapTwoInts(&someInt, b: &anotherInt)
        print("someInt is \(someInt),anotherInt is \(anotherInt)")
    }

    func swapTwoInts(inout a:Int , inout b:Int) {
        let temp = a
        a = b
        b = temp
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章