Swift-函數學習

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

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"

相關文章
相關標籤/搜索