iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
Mobile Development

Xiang教你入門Swift從零到有系列 第 4

Day04 Swift 列舉:玩轉遞迴與非遞迴

  • 分享至 

  • xImage
  •  

前文

今天會講些比較進階的東西 各位小心服用/images/emoticon/emoticon73.gif

enumeration(列舉)

隱式指派 (初始值之後依序遞增 1, 2, 3, 4)

https://ithelp.ithome.com.tw/upload/images/20230824/201618454g3IsU1IiV.png

因為前面已知道在使用列舉 所以可以簡寫
然後rawValue 能夠取得原始值

https://ithelp.ithome.com.tw/upload/images/20230824/20161845BPZyqw95Rl.png
如果列舉裡面有這個值的話 會印出值對應的case
如果沒有就印出nil

https://ithelp.ithome.com.tw/upload/images/20230824/201618459h8jbwSwEp.png

recursive enumeration (遞迴列舉

第一行 表示一個整數值用來表示一個數字
第二行 表示兩個 列舉 類型的值相加
第三行 表示兩個 列舉 類型的值相乘
indirect 代表可以遞迴 參數代表是 enum 的相關值
也可以設在enum前面 代表整個enum都可以遞迴
https://ithelp.ithome.com.tw/upload/images/20230824/20161845tYw8jRoRDw.png

定義一個function 裡面的參數是一個列舉型別
透過switch 判斷要執行哪一個case
如果是個number 那就回傳 輸入為整數的value
如果是 plus 就回傳 兩個一樣的function 相加
https://ithelp.ithome.com.tw/upload/images/20230824/20161845bVBjO2mhso.png

到這邊大家頭暈暈了吧 直接放上例子
前面兩行就是return值 中間兩行就是遞迴
當我們執行plus時 參數a 跟 b 傳給 evaluate後做相加
就會變成 return (2 + 3)

https://ithelp.ithome.com.tw/upload/images/20230824/20161845f0p5vqPZn7.png

還是不懂嗎 那我畫張圖

https://ithelp.ithome.com.tw/upload/images/20230824/20161845ngmpbWwOWO.png

結尾

大家感受到遞迴的可怕了嗎
但是這個是很簡單的範例了 希望大家能明白
那今天就到這邊了 明天繼續教大家新的語法/images/emoticon/emoticon69.gif


上一篇
Day03 Swift裡常用到的語法
下一篇
Day05 Swift的造人術
系列文
Xiang教你入門Swift從零到有30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言