Swift 總結(jié)(1)-可變參數(shù),嵌套for循環(huán)操作,輸入輸出參數(shù)

1、可變參數(shù)

/// 可變參數(shù)
    func sumNumbers(_ numbers: Int...) -> Int {
        var sum = 0
        for number in numbers {
            sum += number
        }
        
        return sum
    }

調(diào)用:
let sum = sumNumbers(1, 2, 3)
print("sum = \(sum)")
//參考:public func print(_ items: Any..., separator: String = " ", terminator: String = "\n")的寫法

2、嵌套for循環(huán)操作-跳出外部for循環(huán)的操作

outer: for i in 0 ... 5 {
    for k in 0 ... 4 {
        if k == 3 {
            continue outer
        }
        
        if i == 3 {
            break outer
        }
        
        print("i = \(i) k = \(k)")
    }
}

3、輸入輸出參數(shù)

函數(shù)的參數(shù)默認(rèn)是let屬性,但如果我們想修改參數(shù)的值,需要設(shè)置該參數(shù)為輸入輸出參數(shù)。兩個(gè)注意點(diǎn):
1、輸入輸出參數(shù)需要定義為var屬性
2、在讀取的時(shí)候,需要用“&”
3、可變參數(shù)不能用inout
4、inout 參數(shù)不能有默認(rèn)值
5、inout 參數(shù)屬于地址傳遞(引用傳遞)

func changeNumberValue(_ num: inout Int) {
      num = 100
}

調(diào)用:
var number = 20
changeNumberValue(&number)
print("number = \(number)")

應(yīng)用:交換兩個(gè)數(shù) 等同 Swift自帶的swap方法
func swapValues(_ v1: inout Int, _ v2: inout Int) {
    let temp = v1
    v1 = v2
    v2 = temp
}

4、函數(shù)重載(Overload)

1、函數(shù)名相同,參數(shù)不同
2、注意二義性

5、內(nèi)聯(lián)函數(shù)(Inline Function)

內(nèi)聯(lián)函數(shù)在開啟項(xiàng)目?jī)?yōu)化的時(shí)候,會(huì)自動(dòng)的將簡(jiǎn)單函數(shù)變成內(nèi)聯(lián)函數(shù),而函數(shù)則直接展開為函數(shù)體
但是:
1、復(fù)雜的函數(shù)不會(huì)進(jìn)行內(nèi)聯(lián)優(yōu)化
2、遞歸函數(shù)也不會(huì)進(jìn)行內(nèi)聯(lián)優(yōu)化
3、包含動(dòng)態(tài)派發(fā)(動(dòng)態(tài)綁定)也不會(huì)進(jìn)行內(nèi)聯(lián)優(yōu)化

typealias 起別名

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 可變參數(shù):一個(gè)可變參數(shù)(variadic parameter)可以接受零個(gè)或多個(gè)值。函數(shù)調(diào)用時(shí),你可以用可變參數(shù)來...
    博行天下閱讀 5,994評(píng)論 2 0
  • inout:輸入輸出參數(shù),可以在函數(shù)內(nèi)部修改外部實(shí)參的值。 inout參數(shù)不能有默認(rèn)值 只能傳入可變參數(shù),(類似I...
    螢火駐守心間閱讀 903評(píng)論 0 7
  • 隨著swift語(yǔ)言的不斷發(fā)展,越來越來趨于穩(wěn)定化。現(xiàn)在也有很多公司使用swift來開發(fā)新的App,那么不會(huì)swif...
    木子雨廷t閱讀 1,757評(píng)論 0 3
  • 函數(shù)的定義 隱式返回 如果整個(gè)函數(shù)體是一個(gè)單一表達(dá)式,那么函數(shù)會(huì)隱式(自動(dòng))返回這個(gè)表達(dá)式 返回元組:實(shí)現(xiàn)多返回值...
    RUNNING_NIUER閱讀 1,835評(píng)論 0 1
  • 可變形式參數(shù)只能在函數(shù)的內(nèi)部做改變。如果你想函數(shù)能夠修改一個(gè)形式參數(shù)的值,而且你想這些改變?cè)诤瘮?shù)結(jié)束之后依然生效,...
    GitArtOS閱讀 799評(píng)論 0 4

友情鏈接更多精彩內(nèi)容