iOS開發Swift篇 (八)函式 2

2021-06-27 21:40:27 字數 1800 閱讀 9254

一、函式型別

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

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

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

308 printresult(minus, 20, 10) //

10

四、函式作為返回值

跟其他資料型別一樣,函式也能當函式的返回值

1 func gotowork() 

2 func playfootball()

3 func howtodo(day: int) -> () ->() else9}

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

4if day < 6

else 7}

8 var fn = howtodo(5

)9 fn() //

去上班10 gotowork()

iOS開發Swift篇 (八)函式 2

ios開發swift篇 八 函式 2 一 函式型別 函式型別也是資料型別的一種,它由形參型別和返回值型別組成,格式是 形參型別列表 返回值型別 1 func sum num1 int,num2 int intsum函式的函式型別是 int,int int 1 func printline 2 pri...

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