Swift函數的定義與調用
函數的定義與調用(Defining and Calling Functions)
當你定義一個函數時,你可以定義一個或多個有名字和類型的值,作爲函數的輸入(稱爲參數,parameters),也可以定義某種類型的值作爲函數執行結束的輸出(稱爲返回類型)。
每個函數有個函數名,用來描述函數執行的任務。要使用一個函數時,你用函數名「調用」,並傳給它匹配的輸入值(稱作實參,arguments)。一個函數的實參必須與函數參數表裏參數的順序一致。
在下面例子中的函數叫做"greetingForPerson"
,之所以叫這個名字是因爲這個函數用一個人的名字當做輸入,並返回給這個人的問候語。爲了完成這個任務,你定義一個輸入參數-一個叫做 personName
的 String
值,和一個包含給這個人問候語的 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
函數時,在圓括號中傳給它一個 String
類型的實參。因爲這個函數返回一個 String
類型的值,sayHello
可以被包含在 println
的調用中,用來輸出這個函數的返回值,正如上面所示。
在 sayHello
的函數體中,先定義了一個新的名爲 greeting
的 String
常量,同時賦值了給 personName
的一個簡單問候消息。然後用 return
關鍵字把這個問候返回出去。一旦 return greeting
被調用,該函數結束它的執行並返回greeting
的當前值。
你可以用不同的輸入值多次調用 sayHello
。上面的例子展示的是用"Anna"
和"Brian"
調用的結果,該函數分別返回了不同的結果。
爲了簡化這個函數的定義,可以將問候消息的創建和返回寫成一句:
func sayHelloAgain(personName: String) -> String {
return "Hello again, " + personName + "!"
}
println(sayHelloAgain("Anna"))
// prints "Hello again, Anna!"