讀古今文學網 > iOS編程基礎:Swift、Xcode和Cocoa入門指南 > 2.9 遞歸 >

2.9 遞歸

函數可以調用自身,這叫作遞歸。遞歸似乎有些可怕,就像從懸崖上跳下來一樣,因為要冒著創建一個無限循環的風險;不過,如果函數編寫正確,那麼總是會有一個「停止」條件,它會處理降級情況,並防止無限循環的發生:


func countDownFrom(ix:Int) {
    print(ix)
    if ix > 0 { // stopper
        countDownFrom(ix-1) // recurse!
    }
}  

在Swift 2.0之前,Swift對遞歸施加了一個限制:函數中的函數(局部函數)不可以調用自身。在Swift 2.0中,這個限制已經解除了。