iOS開發Swift篇 (八)函式 2

2021-09-08 04:13:41 字數 1909 閱讀 2683

ios開發swift篇—(八)函式(2)

一、函式型別

函式型別也是資料型別的一種,它由形參型別和返回值型別組成,格式是

(形參型別列表) -> 返回值型別

1 func sum(num1: int, num2: int) -> int
sum函式的函式型別是(int, int) -> int

1 func printline()

2

printline函式的函式型別有4種表示方法

(1)void -> void 

(2)() -> ()

(3)void -> ()

(4)() -> void

二、利用函式型別定義變數

可以利用函式型別來定義變數,將來可以儲存這種型別的函式

1 func sum(num1: int, num2: int) -> int 

4 var fn: (int, int) -> int = sum

5 fn(10, 20) // 返回30

由於swift有型別推斷機制,因此,也可以這麼寫

var fn = sum   // fn以後所儲存函式的型別就必須是(int, int) -> int

三、函式作為引數

跟其他資料型別一樣,函式也能當函式的引數

1 func printresult(fn: (int, int) -> int, num1: int, num2: int) 

2

fn引數接收乙個函式,這個函式必須返回int、有2個int型別的引數

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) -> () -> () 

3 func playfootball()

4 if day < 6 else

7 }8 var fn = howtodo(5)

9 fn() // 去上班

10 gotowork()

注意:第10行是錯誤寫法,巢狀函式的作用域僅限於定義巢狀函式的函式體內部

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...