[ SWIFT ] - 史丹福 StandFord-CS193P-課程3-心得分享-20150723
[ SWIFT ] - 史丹福 StandFord-CS193P-課程3-心得分享-20150723
如何自定類別,達到MVC中的模組化(Model)
課程3有4個必學重點:(1)enum(2)init初始化(3)自定Class(4)Closure閉包觀念-將func當做參數傳遞
說真的課程內容很精采!但是需要時間消化,內容我會逐一補齊!
(1)enum 枚舉:
利用PrintTable 達到enum列印的目的
利用description達到輸出 enum
(2)init初始化
(3)自訂Class
請允許我先介紹 Closure
(4)CLOSURE介紹
如何自定類別,達到MVC中的模組化(Model)
課程3有4個必學重點:(1)enum(2)init初始化(3)自定Class(4)Closure閉包觀念-將func當做參數傳遞
說真的課程內容很精采!但是需要時間消化,內容我會逐一補齊!
(1)enum 枚舉:
enum是定義一個通用型別的一組相關的值,具有幾個特性:
利用description達到輸出 enum
(2)init初始化
執行初始化的method叫做initializer,class, structure和enumeration都可以設定initializer,以init()表示,init內容會最早被執行。
請允許我先介紹 Closure
(4)CLOSURE介紹
Closure 的語法如下:
{
(參數列) - >; 回傳型態 in Closure 的程式碼
}
Closure寫法,總共有6種,其中5種為Closure的基本語法,另外1種則是Function使用Closure的便捷語法,相關寫法如下:
為簡單說明,請允許我使用這個錯誤的範例:
func A(name:String) ->; String{
return "Your name is" +name
}
func B(Phone:String) - >; String{
return "Your PHONENO is" +phone
}
1.完整寫法
說明:直接傳入func名稱作為closure
A(B("28825252"))
執行結果:Your name is Your PHONENO is 28825252
補充說明:當我們將函數當做參數傳遞時,緊記外部執行完後傳入內部
2.完整的匿名Clouse
說明:直接以{}帶入,注意return前要加上 in
A({Phone:String -> String in return "Your PHONENO is" +phone})
3.簡略的匿名Clouse
說明:由於swift可以導出Phone:String -> String in return "Your PHONENO is" +phone來自B函數,因此知道函數參數的類型,故可以省略參數類型,只寫參數名
A({Phone in return "Your PHONENO is" +phone})
4.精簡的匿名Clouse
說明:完全不定義參數名,當不宣告參數時,系統會直接以$加入參數位置取代,參數位置由0開始,此寫法 不需寫 in
A({ return "Your PHONENO is" +$0})
5.最精簡的匿名Clouse
說明:當傳入的參數是最後一個時,可以將參數搬移至()右方省略return,如果有多個參數時,其餘參數仍要在()中。
A(){ "Your PHONENO is" +$0}
留言
張貼留言
您好:
歡迎到訪我的Blog,這裡有我的生活經驗、美好的回憶和程式開發經驗分享~
目前努力學習Swift中,希望你會喜歡Swift!
如果可以也請你留言給我一個鼓勵喔!
謝謝