課程
/移動開發(fā)
/iOS
/玩兒轉(zhuǎn)Swift
為什么在每次調(diào)用時,totalmiles不會被置為0呢?我也有同樣的問題
2015-02-17
源自:玩兒轉(zhuǎn)Swift 8-4
正在回答
注意,var totalMiles = 0 這句是處在 calcTotalMiles 函數(shù)中。
而你說的每次調(diào)用,調(diào)用的并不是 calcTotalMiles 這個函數(shù),而是?calcTotalMiles 這個函數(shù)的返回值,也就是另一個函數(shù)。返回的函數(shù)被命名為?dailyTwoMiles 或者?dailyThreeMiles,返回函數(shù)的內(nèi)容是閉包內(nèi)容:{totalMiles += todayMiles; return totalMiles; },其中并沒有對 totalMiles 重置的語句,所以totalMiles不會被重置。
那么問題來了,totalMiles 什么時候被重置。很簡單,var totalMiles = 0 處在?calcTotalMiles 函數(shù)中,當(dāng)然是 calcTotalMiles 被調(diào)用時會被重置,也就是?var dailyTwoMiles = calcTotalMiles(2) 和?var dailyThreeMiles = calcTotalMiles(3) 這兩句在運行時會重置 titalMiles.
點擊獲取獎勵
舉報
這套教程比任何的Swift中文教程深入,并且演示示例更豐富
1 回答為什么在每次調(diào)用時,totalmiles不會被置為0呢?
3 回答每次編輯時候都會彈這個
4 回答為什么我使用的toInt方法會給提示出錯
1 回答接受返回值那里為什么用let 不用var?
2 回答超棒的,,每次我有疑問。。老師的視頻就會說:但是呢.... 恰恰就解決了我的問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-06-13
注意,var totalMiles = 0 這句是處在 calcTotalMiles 函數(shù)中。
而你說的每次調(diào)用,調(diào)用的并不是 calcTotalMiles 這個函數(shù),而是?calcTotalMiles 這個函數(shù)的返回值,也就是另一個函數(shù)。返回的函數(shù)被命名為?dailyTwoMiles 或者?dailyThreeMiles,返回函數(shù)的內(nèi)容是閉包內(nèi)容:{totalMiles += todayMiles; return totalMiles; },其中并沒有對 totalMiles 重置的語句,所以totalMiles不會被重置。
那么問題來了,totalMiles 什么時候被重置。很簡單,var totalMiles = 0 處在?calcTotalMiles 函數(shù)中,當(dāng)然是 calcTotalMiles 被調(diào)用時會被重置,也就是?var dailyTwoMiles = calcTotalMiles(2) 和?var dailyThreeMiles = calcTotalMiles(3) 這兩句在運行時會重置 titalMiles.