ios開發swift篇—(八)函式(2)
一、函式型別
函式型別也是資料型別的一種,它由形參型別和返回值型別組成,格式是
(形參型別列表) -> 返回值型別
1 func sum(num1: int, num2: int) -> intsum函式的函式型別是(int, int) -> int
1 func printline()printline函式的函式型別有4種表示方法2
(1)void -> void
(2)() -> ()
(3)void -> ()
(4)() -> void
二、利用函式型別定義變數
可以利用函式型別來定義變數,將來可以儲存這種型別的函式
1 func sum(num1: int, num2: int) -> int由於swift有型別推斷機制,因此,也可以這麼寫4 var fn: (int, int) -> int = sum
5 fn(10, 20) // 返回30
var fn = sum // fn以後所儲存函式的型別就必須是(int, int) -> int
三、函式作為引數
跟其他資料型別一樣,函式也能當函式的引數
1 func printresult(fn: (int, int) -> int, num1: int, num2: int)fn引數接收乙個函式,這個函式必須返回int、有2個int型別的引數2
1 func sum(num1: int, num2: int) -> int四、函式作為返回值4 func minus(num1: int, num2: int) -> int
7 printresult(sum, 20, 10) // 30
8 printresult(minus, 20, 10) // 10
跟其他資料型別一樣,函式也能當函式的返回值
1 func gotowork()五、函式過載2 func playfootball()
3 func howtodo(day: int) -> () -> () else
9 }10 var fn = howtodo(7)
11 fn()
12 // 踢足球
函式過載:函式名相同,函式型別不同
下面的2個函式構成過載
(1)函式名:sum,函式型別:(int, int) -> int
1 func sum(num1: int, num2: int) -> int(2)函式名:sum,函式型別:(int, int, int) -> int
1 func sum(num1: int, num2: int, num3: int) -> int六、巢狀函式
全域性函式:在全域性作用域中定義的函式
巢狀函式:在某個函式體中定義的函式
**示例:
1 func howtodo(day: int) -> () -> ()注意:第10行是錯誤寫法,巢狀函式的作用域僅限於定義巢狀函式的函式體內部3 func playfootball()
4 if day < 6 else
7 }8 var fn = howtodo(5)
9 fn() // 去上班
10 gotowork()
iOS開發Swift篇 (八)函式 2
一 函式型別 函式型別也是資料型別的一種,它由形參型別和返回值型別組成,格式是 形參型別列表 返回值型別 1 func sum num1 int,num2 int intsum函式的函式型別是 int,int int 1 func printline 2printline函式的函式型別有4種表示方法...
iOS開發Swift篇 (七)函式
一 函式的定義 1 函式的定義格式 1 func 函式名 形參列表 返回值型別 2 形參列表的格式 形參名1 形參型別1,形參名2 形參型別2,3 舉例 計算2個整數的和 1 func sum num1 int,num2 int int 4 沒有返回值的函式 如果函式沒有返回值,有3種寫法 1 fu...
iOS開發Swift篇 (七)函式 1
一 函式的定義 1 函式的定義格式 1 func 函式名 形參列表 返回值型別 2 形參列表的格式 形參名1 形參型別1,形參名2 形參型別2,3 舉例 計算2個整數的和 1 func sum num1 int,num2 int int 4 沒有返回值的函式 如果函式沒有返回值,有3種寫法 1 fu...