swift學習之函數類型

來源:互聯網
上載者:User

標籤:swift

 
var someInt: Int = 7

Int 就是表示someInt的類型,同理,這個Int也可以換成函數類型,所以也可以像其他類型那樣使用函數類型

函數類型主要由三種用途:(一)就是上面說的了 (二)作為參數(三)作為傳回型別

再加一個,就是函數也可以嵌套(nested)

        let math: (Int , Int) -> Int = addTwoInts        printMathResult(math, a: 9, b: 9)        //printMathResult(math, 9, 9)
    func addTwoInts(a:Int , b:Int) -> Int {        return a + b    }
    func printMathResult(mathFunction: (Int , Int) -> Int , a: Int , b: Int) {        print("mathResult:\(mathFunction(a , b))")    }    //    func printMathResult(mathFunction: (Int , Int) -> Int , _ a: Int , _ b: Int) {        print("mathResult:\(mathFunction(a , b))")    }
        let math: (Int , Int) -> Int = addTwoInts 這裡就定義了math 為一個接收兩個Int型參數並且有返回值且返回為Int型的函數類型

       addTwoInts就是定義一個普通函數

       printMathResult由函數名字就猜得到這個函數實現的列印功能,並且接收三個參數,第一個參數類型要是函數類型,第二和第三個是兩個Int型

兩處加//處的地方和上面一行是等效的,只是形參名字省不省略而已

線面看一個嵌套的例子(嵌套就是在一個函數裡面可以繼續寫函數)

        var currentValue = -4        let moveNearZero = chooseStepFunction(currentValue > 0)        while currentValue != 0 {            print("\(currentValue)..")            currentValue = moveNearZero(currentValue)        }                print("zero!")                    }    func chooseStepFunction(backwards: Bool) -> (Int) -> Int {                func stepForward(input: Int) -> Int {            return input + 1        }                func stepBackward(input: Int) -> Int {            return input - 1        }                return backwards ? stepBackward : stepForward            }

這裡面既包括了函數嵌套,也包括了函數可以作為傳回型別

下面我會好好研究下閉包,在寫部落格,謝謝

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

swift學習之函數類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.