iOS開發 Swift 總結18 函式

2021-08-29 14:18:22 字數 2505 閱讀 1717

第2部分 故事的高階要素 - 程式語言swift的高階部分

6 函式

6.1 概念通俗講解

函式主要目的是把一段**塊封裝起來。然後為函式取乙個函式名,想執行這段**時,呼叫這個函式名即可。

6.2 定義簡潔介紹以及經驗總結

1). 定義的格式

func 函式名
舉例,定義函式checkage。

func

checkage()

把下面的**封裝起來

if age >

1else

if age >

5else

if age >

10

封裝好後結果為

var age =

10func

checkage()

else

if age >

5else

if age >

10}

使用時,呼叫checkage函式的形式如下

checkage

()

2). 函式新增返回值

舉例:

var age =

10func

checkage()

->

intelse

if age >

5else

if age >

10return age

}

func checkage() -> int 中的-> int是規定函式的返回值型別,常見的有int,bool,float等,函式內部的return age代表的是返回int型別具體的數值

如果規定了函式的返回型別,函式內部一定要return相對應型別的具體值。

對於上面的例子,呼叫checkage函式,可以把返回的值給變數age2,**如下

var age2 =

checkage

()

對於最開始定義的函式

func

checkage()

其實它是有返回值的,不過它的返回值是void型別(空型別),對於void型別,返回值部分的**是可以省略掉。

func

checkage()

完整的寫法如下

func

checkage()

->

void

3). 函式新增引數

對於上面的例子,我們可以給checkage函式新增乙個引數,可以讓引數來改變age的值

var age =

10func

checkage

(agechange:

int)

->

intelse

if age >

5else

if age >

10return age

}

呼叫checkage函式,可以把返回的值給變數age2

var age2 =

checkage

(agechange:

3)

agechange: int就是函式的引數,agechange是形參(形式引數),函式定義時使用。int是實參(實際引數),呼叫函式時使用。引數的型別有很多,常見的有int,bool,float。4) 函式引數的值在函式裡是不能直接修改的,如果想修改的話,需要用inout關鍵字

func

change

(number1:

inout

int, number2:

inout

int)

var num1 =

1var num2 =

2

呼叫change函式時,對應inout關鍵字,這裡使用了符號&

change

(number1:

&num1, number2:

&num2)

呼叫change函式後,num1的值變為了2,num2的值變為了1

5) 省略函式的外部引數名的方法

swift函式的引數名其實是有2個的,乙個是外部的,乙個是內部的。平時之所以寫乙個,是因為swift預設把外部和內部的引數名同指為1個了。

當呼叫函式不想寫形參時,可以用如下的方法

舉例

var age =

10func

checkage

(_ agechange:

int)

->

int

呼叫函式時不用寫形參了,很簡潔。

checkage(20

)

18 swift開發iOS 結構體

swift 結構體 swift 結構體是構建 所用的一種通用且靈活的構造體。我們可以為結構體定義屬性 常量 變數 和新增方法,從而擴充套件結構體的功能。與 c 和 objective c 不同的是 結構體不需要包含實現檔案和介面。結構體允許我們建立乙個單一檔案,且系統會自動生成面向其它 的外部介面。...

iOS開發 Swift 總結13 if 控制流

第2部分 故事的高階要素 程式語言swift的高階部分 1 if 控制流 1.1 概念通俗講解 if控制流通俗來講就是判斷條件為真時,執行一段 1.2 定義簡潔介紹 1 if 語句 if 判斷條件舉例,有乙個變數age,如果age大於5時,我們讓age等於5,如下。var age 10if age ...

ios開發Objective C可變引數函式

首先作為乙個coder 很多時候會遇到自己不能解決的問題需要上網查資料,而且不知道我自己水平沒能理解 還是演示demo就有問題,或者大家都沒發現的乙個問題。這裡重新按照自己的理解重新寫乙個使用oc可變引數函式的方法。本人能力有限,如果遇到錯誤或 問題,麻煩大家指出 nsarray actionuse...