函數:函數是獨立的代碼塊,執行特定的任務。函數
Swift 的統一函數語法足夠靈活,能表達沒有參數名稱的簡單的 C 型函數的任何東西,本地和外部複雜 Objective-C-style 方法參數名稱爲每一個參數。一旦函數完成其執行,參數能夠提供默認值來簡化函數調用, 而且能夠做爲輸入輸出參數來傳遞,修改一個傳遞變量。spa
Swift 中的每一個函數都有各自的類型,包括函數的參數類型和返回類型。此類型相似於 Swift 中的任何 其餘類型,您能夠使用此類型,使它很容易將函數做爲參數傳遞給其餘函數,並從函數返回函數。函數也能夠 寫在其餘函數中,來封裝一個嵌套函數範圍內的有用的功能。 blog
定義和調用函數:字符串
當你定義一個函數時,您能夠選擇性地定義一個或多個命名類型值,函數做爲輸入(稱爲參數),和/或一個類型的值,當它完成後函數將做爲輸出返回(稱爲其返回類型)。string
每個函數都有一個函數名,用於描述該函數所執行的任務。使用一個函數,你用它的名字「調用」函數 並將其傳遞給匹配函數參數類型的輸入值(稱爲參數)。所提供的函數的參數必須與函數的參數列表順序相 同。 it
簡單舉一個例子:定義一個名稱爲sayhello的函數,一個類型爲字符串的參數personName,返回值也是字符串類型:io
//單個參數 func sayhello ( personNmae: String)->String{ let greatName = "hello " + personNmae + "!" return greatName }
寫一句輸出語句:class
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"