iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 26
0
自我挑戰組

Swift - 來吧!鐵人三十項系列 第 26

Day26:當天的鐵人當天寫 - Higher-Order Functions & Closure(2)

  • 分享至 

  • twitterImage
  •  

前前言

嗨,大家好,我是 Lacie,您現在收看的是 Swift - 來吧!鐵人三十項 系列的第二六篇
在鐵人賽完結後,為保持持續做筆記的習慣
將會在我的 Medium 繼續撰寫文章,若有興趣者可前往觀看。


承前幾集 - Closure 基礎學習

趁國慶連假,趕緊拉回來寫樸實無華但又重要的基礎語法
不然再繼續被其他應用給吸引走了,鐵人賽就要結束了

Day17 的文章中,有介紹了在 function 裡帶入以其他 function 為參數的使用方式:

其實也是可以帶入 closure 為參數:

也可以利用 typealias 將程式碼變簡潔:

或是不想帶入參數,直接在 operation 寫閉包也可以:

或者也可以將參數移到最後面,閉包就可以在括弧外寫(尾隨閉包):

也有完全不需要帶入參數及回傳的閉包寫法:


Closure & sort & sorted

這裡有一個名字陣列,原本長這樣:

想要讓它依開頭字母排列的話,可以用 sort():

也可以依自己想要的條件,寫在閉包裡:

但 sort() 會改變原先的陣列,想要不影響到原先的陣列,可以使用 sorted():

一樣也是可以利用閉包寫條件:


Closure & Filter

下面是一組考試成績:

想要篩選出大於 60 分的,可以使用 For-In,但使用 Filter 會更快:

當然還可以再更懶惰一點:

篩選出英文名字有四個字以上的人:

找出小於 25 歲的人:


下集待續 ...


上一篇
Day25:本地推播通知 - Local UserNotification(1)
下一篇
Day27:當天的鐵人當天寫 - Higher-Order Functions & Closure(3)
系列文
Swift - 來吧!鐵人三十項30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言