Swift-函數學習

來源:互聯網
上載者:User

標籤:

函數:函數是獨立的代碼塊,執行特定的任務。

Swift 的統一函數文法足夠靈活,能表達沒有參數名稱的簡單的 C 型函數的任何東西,本地和外部複雜 Objective-C-style 方法參數名稱為每個參數。一旦函數完成其執行,參數可以提供預設值來簡化函數調用, 並且可以作為輸入輸出參數來傳遞,修改一個傳遞變數。

Swift 中的每個函數都有各自的類型,包括函數的參數類型和傳回型別。此類型類似於 Swift 中的任何 其他類型,您可以使用此類型,使它很容易將函數作為參數傳遞給其他函數,並從函數返回函數。函數也可以 寫在其他函數中,來封裝一個嵌套函數範圍內的有用的功能。 

定義和調用函數:

當你定義一個函數時,您可以選擇性地定義一個或多個命名類型值,函數作為輸入(稱為參數),和/或一個類型的值,當它完成後函數將作為輸出返回(稱為其傳回型別)。

每一個函數都有一個函數名,用於描述該函數所執行的任務。使用一個函數,你用它的名字“調用”函數 並將其傳遞給匹配函數參數類型的輸入值(稱為參數)。所提供的函數的參數必須與函數的參數列表順序相 同。 

簡單舉一個例子:定義一個名稱為sayhello的函數,一個類型為字串的參數personName,傳回值也是字串類型:

//單個參數func  sayhello ( personNmae: String)->String{let greatName = "hello  " + personNmae + "!"return greatName}

寫一句輸出語句:

println(sayhello("tom"))

此時在控制台上可以看到輸出這麼一句話:"hello  tom!"

簡單分析一下這個代碼塊:func關鍵字是聲明一個函數,sayhello是定義的函數名,personName是類型為字串的參數,用->表示函數的傳回值,後面跟函數的傳回型別。

 

如果想要函數具有兩個參數,參考C語言,可以很容易的想到下面這種方式,輸入兩個int型的參數,計算兩者的和:

func sum (one:Int,two:Int)->Int{return one + two}println(sum(2,4))
//此時輸出的結果是6

注意:當函數中有多個參數時,需要用逗號分隔。


無參數函數:不要求函數對輸入參數進行定義。這是一個沒有輸入參數的函數,當被調用時,它總是返回相同的字串訊息。 
//無參函數func NoPrame()->String{    return "這是一個無參函數"}println(NoPrame())

雖然該函數不採取任何參數,但是該函數名依然需要放在括弧中。當函數被調用時,函數名後要有一 對空括弧。 

 

無傳回值函數:不要求函數對傳回型別進行定義。這裡定義了一個NoReturn函數,它會列印自 己的字串值,而不是返回它:

//無傳回值函數func NoReturn(onewords:String){println("這是\(onewords)")    }NoReturn("一句話")//函數內部會輸出:一句話

具有多個傳回值的函數:下面的例子定義了一個名為 count 函數,它計算母音,輔音,和某一字串中的其他字元,基於美國 英語中使用母音和輔音的標準設定。 

//具有多個傳回值的函數,元群組類型作為函數的傳回型別func count(string:String)->(vowels:Int,consonants:Int){var vowels = 0,consonants = 0    for character in string{        switch String(character).lowercaseString{        case "a","e","i","o","u":            ++vowels            case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":            ++consonants        default:            break        }    }    return(vowels,consonants)}

在這裡進行count函數的調用:

let total = count("some arbitrary string!")println("\(total.vowels) vowels and \(total.consonants) consonants")

控制台會輸出:"6 vowels and 13 consonants"

 

Swift-函數學習

相關文章

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.