Welcome to Swift (蘋果官方Swift文檔初譯與註解三十)---225~230頁(第五章-- 函數)

來源:互聯網
上載者:User

標籤:style   使用   strong   art   for   cti   

Functions (函數)

  函數是一個執行特定任務的程式碼片段.通過名稱來標識和調用它們.

  在Swift中,每個函數都有類型,包括函數的參數類型和傳回值類型.這些類型與Swift中的其他類型使用起來一樣,這使得函數可以作為參數傳遞給另一個函數,以及可以從一個函數中返  回函數,一個函數也可以寫在另一個函數內部,這樣可以更有效封裝和嵌套.

Defining and Calling Functions (定義和調用函數)

  當你在定義函數的時候,你可以選擇性的命名一個或者多個參數類型值,以及函數執行後的傳回值類型.

  每個函數都有一個名字,它是用了描述函數的功能.如果想調用這個函數,可以直接使用函數的名字並傳遞相應的參數(參數的類型要與函數的參數列表匹配).

  下面是一個greetingForPerson函數的簡單例子,它接收一個人名作為參數,返回一個問候語(一個String類型的值):

    func sayHello(personName: String) -> String {

        let greeting = "Hello, " + personName + "!"

        return greeting

    }

  上面的程式碼封裝含了函數定義的資訊:首碼的關鍵字func,以及緊跟在函數名稱後面的返回箭頭符號(->),它表示函數的傳回值類型.

  這個定義範例描述了這個函數有什麼功能,它要接收什麼,以及函數完成後會返回什麼.這使得這個函數在代碼的其他地方調用都會非常清晰:

    println(sayHello("Anna"))

    // prints "Hello, Anna!"

    println(sayHello("Brian"))

    // prints "Hello, Brian!”

  你可以多次調用sayHello函數,並使用不同的參數值.為了簡化函數體,可以使用一行代碼整合:

    func sayHelloAgain(personName: String) -> String {

        return "Hello again, " + personName + "!"

    }

    println(sayHelloAgain("Anna"))

    // prints "Hello again, Anna!”

Function Parameters and Return Values (函數的參數和傳回值)

  在Swift中,函數的參數和傳回值是非常富有彈性的.你可以定義任意類型的傳回值,也可以使用一個或者多個參數(或者匿名的參數).

Multiple Input Parameters (多個參數)

  函數可以有多個參數,它們寫在函數的括弧內,並使用逗號分隔.

  代碼例子:

    func halfOpenRangeLength(start: Int, end: Int) -> Int {

        return end - start

    }

    println(halfOpenRangeLength(1, 10))

    // prints "9”

Functions Without Parameters (無參函數)

  函數沒有要求必須使用參數.下面的函數例子中使用了沒有參數的函數,當它被調用的時候,它總是返回相同的String資訊:

    func sayHelloWorld() -> String {

         return "hello, world"

    }

    println(sayHelloWorld())

    // prints "hello, world”

  無參的函數定義的時候仍然需要在函數名後面使用括弧().

Functions Without Return Values (無傳回值函數)

  函數也可以不定義傳回值,這麼的代碼範例定義了一個函數waveGoodbye,它只是列印輸出String值,而不是返回這個值:

    func sayGoodbye(personName: String) {

        println("Goodbye, \(personName)!")

    }

    sayGoodbye("Dave")

    // prints "Goodbye, Dave!"

  由於函數不需要傳回值,因此定義函數的時候沒有使用返回剪頭(->)

  注意點:

  嚴格意義上說,sayGoodbye函數仍然有傳回值,儘管沒有定義它的傳回值.當函數沒有定義傳回值的時候,這個函數返回一個Void類型的值.它是一個空的元組,元素個數為零,可以寫做  ().

  在調用函數的時候,也可以忽略函數的傳回值:

    func printAndCount(stringToPrint: String) -> Int {

        println(stringToPrint)

        return countElements(stringToPrint)

    }

    func printWithoutCounting(stringToPrint: String) {

        printAndCount(stringToPrint)

    }

    printAndCount("hello, world")

    // prints "hello, world" and returns a value of 12

    printWithoutCounting("hello, world")

  // prints "hello, world" but does not return a value”

  注意點:

  函數的傳回值可以被忽略,但是函數必須有一個傳回值.定義了函數的傳回值,但如果在函數最後沒有傳回值,將會導致一個編譯錯誤.

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.