iOS開發Swift篇 (七)函式

2021-06-27 21:40:27 字數 3320 閱讀 5991

一、函式的定義

(1)函式的定義格式

1 func 函式名(形參列表) ->返回值型別
(2)形參列表的格式

形參名1: 形參型別1, 形參名2: 形參型別2, … 

(3)舉例:計算2個整數的和

1 func sum(num1: int, num2: int) ->int
(4)沒有返回值的函式

如果函式沒有返回值,有3種寫法

1 func 函式名(形參列表) ->void 

45 func 函式名(形參列表) ->() 89

func 函式名(形參列表)

(5)沒有形參的函式

乙個函式如果沒有形參,函式名後面的小括號也不能省略

1 func 函式名() ->int
上面的函式沒有形參、返回值是int型別

(6)返回元組的函式

乙個函式也可以返回元組資料

1 func find(id: int) ->(name: string, age: int)  else7}

8 var people = find(2

)9 println("

name=\(people.name), age=\(people.age)

")

二、外部引數名

1.簡單說明

一般情況下,通過形式引數的名字,就能推斷出這個引數的含義和作用

1

func addstudent(name: string, age: int, no: int)

在函式內部一看引數名就知道這3個引數的作用

但是,形式引數是用在函式內部的,當呼叫函式時就看不見形參的名字,有可能導致以後會不太明白每個引數的含義

對於addstudent("jack", 20, 19)一眼望去,能猜出第1個引數"jack"是指姓名,後面的20、19分別代表什麼含義?

為了解決上述問題,swift提供了外部引數名語法

外部引數名可以在呼叫函式時提醒每個引數的含義

2.定義

外部引數名的定義格式如下:

1 func 函式名(外部引數名 形式引數名: 形式引數型別) ->返回值型別
外部引數名寫在形式引數名的前面,與形式引數名之間用空格隔開

3.外部引數名的使用

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

25 sum(number1: 10, number2: 20) //

呼叫函式

注意:一旦定義了外部引數名,在呼叫函式時就必須加上外部引數名

4.外部引數名的簡寫

使用#能簡化外部引數名的定義

1

func sum(#num1 : int, #num2 : int)

2

第1行**的意思:num1、num2既是形式引數名,又是外部引數名

// 呼叫函式  sum(num1: 10, num2: 20)

三、預設引數值

(1)可以在定義函式時,給形參指定乙個預設值,呼叫函式時,就可以不用給這個形參傳值

1 func addstudent(name: string, age: int = 20

)

addstudent("jack")

age引數有個預設值20,所以第4行呼叫函式時可以不傳值給age引數

輸出結果是:

新增1個學生:name=jackage=20

(2)帶有預設引數值的形參,swift會自動給它生成乙個跟形參名相同的外部引數名

age: int = 20相當於#age: int = 20

因此,如果要傳入age引數值時,只能這麼呼叫

addstudent("jack", age: 25)

(3)在帶有預設引數值的引數名前加個下劃線 _ ,呼叫函式時就不用寫外部引數名

1 func addstudent(name: string, _ age: int = 20) 4

5 addstudent("

jack

", 25)

四、常量和變數引數

預設情況下,函式的引數都是常量引數,不能在函式內部修改

1

func test(num: int)

45 func test(num: int)引數相當於func test(let num: int)

注意:第2行**會報錯

在有些情況下,可能需要在函式內部修改引數的值,這時需要定義變數引數

在引數名前面加個var即可

1

func test(var num : int)

// 編寫函式在某個字串的尾部拼接n個其他字串

26return

string7}

jack

", "

.", 4) //

呼叫函式9//

jack....

五、輸入輸出引數

1.什麼是輸入輸出引數?

在c語言中,利用指標可以在函式內部修改外部變數的值

在swift中,利用輸入輸出引數,也可以在函式內部修改外部變數的值

輸入輸出引數,顧名思義,能輸入乙個值進來,也可以輸出乙個值到外部

2.輸入輸出引數的定義

在引數名前面加個inout關鍵字即可

func swap(inout num1: int, inout num2: int)

3.**示例:寫乙個函式交換外部2個變數的值

1

func swap(inout num1: int, inout num2: int)

6 var a = 20

7 var b = 10

8 swap(&a, &b) //

傳入的引數前面必須加上&9//

執行完swap函式後,a的值是10,b的值是20

4.輸入輸出引數的使用注意

傳遞實參時,必須在實參的前面加上&

不能傳入常量或者字面量(比如10)作為引數值(因為它們都不可改)

輸入輸出引數不能有預設值

輸入輸出引數不能是可變引數

輸入輸出引數不能再使用let、var修飾(inout和let、var不能共存)

輸入輸出引數的價值之一

可以實現函式的多返回值(其實讓函式返回元組型別,也能實現返回多個值)

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

iOS 開發 Swift 七 函式

func sum a int,b int int let result sum 10,b 20 格式 func 函式名 形參1 型別 預設值,形參2 型別 預設值.返回值 說明 包含預設值的函式可以不用傳遞,並且可以任意組合 格式 func 函式名 形參1 型別,形參2 型別.返回值 說明 可以忽略...

iOS開發Swift篇 (八)函式 2

一 函式型別 函式型別也是資料型別的一種,它由形參型別和返回值型別組成,格式是 形參型別列表 返回值型別 1 func sum num1 int,num2 int intsum函式的函式型別是 int,int int 1 func printline 2printline函式的函式型別有4種表示方法...