在大多數物件導向的程式語言中,有一種最常用的語法就是function
啦!
在 Swift 裡的函式語法跟其他語言很像,接下來我們先從格式開始看起!
func 函式名稱(參數名: 型別) -> 回傳型別 {
// 執行的程式內容
return 回傳的資料
}
func 是定義function時會用到的關鍵字
我們可以自行決定是否帶入參數,也可以選擇回傳一個值或不回傳
接下來會用例子來舉例簡單的function用法
func fruitPrice() -> String{
var apple = 10
var grape = 20
if apple > grape{
return "蘋果比較貴"
}else{
return "葡萄比較貴"
}
}
let result = fruitPrice()
print(result) // ➜ 輸出:葡萄比較貴
就像範例使用的一樣我可以自由的選擇設定的回傳型別,並透過設定變數來取得回傳值
最後print出來
在範例中用到了前天我們介紹的if-else
語法,昨天介紹的for
, while
迴圈也能應用在function哦
接下來我們來介紹所謂的巢狀function
有寫過程式的大家相信都已經想到了拔!
沒錯!就是在function裡面再包一個function
先來看看格式吧!
func outFunc() { //外圈func
// 執行的程式內容
return 回傳的資料
func inFunc() { //內圈func
// 執行的程式內容
return 回傳的資料
}
inFunc() // 呼叫內層函式
}
巢狀function就是在一個function內部再定義另一個function
內層的function只能在它的外部函式中被呼叫
這樣可以讓功能更封裝、更有條理,也有助於程式邏輯的維護與安全性。
既然大家都了解了那我們先來看個例子吧!
func checkFruitPrice(apple: Int, grape: Int) -> String {
func compare() -> String {
if apple > grape {
return "蘋果比較貴"
} else if apple < grape {
return "葡萄比較貴"
} else {
return "兩者一樣貴"
}
}
return compare()
}
let result = checkFruitPrice(apple: 15, grape: 20)
print(result) // ➜ 輸出:葡萄比較貴
我們用今天教的funtion作為例子使用巢狀的方式的去判斷水果的價格
今天先簡單的介紹到這邊,明天我們介紹閉包closure!