Swift基本語(yǔ)法大雜燴

函數(shù)和閉包

函數(shù)是獨(dú)立的可重復(fù)使用的功能模塊,如果程序中出現(xiàn)了大量的重復(fù)代碼,通常都可以將這部分功能封裝成一個(gè)獨(dú)立的函數(shù)。在Swift中,函數(shù)是"一等公民",可以作為類型來(lái)使用,也就是說(shuō)函數(shù)可以賦值給一個(gè)變量或常量,可以將函數(shù)作為函數(shù)的參數(shù)或者返回值,還可以使用高階函數(shù)。

func 函數(shù)名([參數(shù)1: 類型, 參數(shù)2: 類型, ...]) [throws|rethrows] [-> 返回類型] {
    函數(shù)的執(zhí)行體
    [return 表達(dá)式]
}
  • 外部參數(shù)名

  • inout參數(shù)

  • 可變參數(shù)列表

閉包就是沒(méi)有名字的函數(shù)(匿名函數(shù))或者稱之為函數(shù)表達(dá)式(Lambda表達(dá)式),Objective-C中與之對(duì)應(yīng)的概念叫block。如果一個(gè)函數(shù)的參數(shù)類型是函數(shù)我們可以傳入一個(gè)閉包;如果一個(gè)函數(shù)的返回類型是函數(shù)我們可以返回一個(gè)閉包;如果一個(gè)類的某個(gè)屬性是函數(shù)我們也可以將一個(gè)閉包表達(dá)式賦值給它。

{ ([參數(shù)列表]) [-> 返回類型] in 代碼 }

面向?qū)ο缶幊?OOP)

基本概念

對(duì)象:接收消息的單元,對(duì)象是一個(gè)具體的概念。

類:對(duì)象的藍(lán)圖和模板,類是一個(gè)抽象概念。

消息:對(duì)象之間通信的方式,通過(guò)給對(duì)象發(fā)消息可以讓對(duì)象執(zhí)行對(duì)應(yīng)的操作來(lái)解決問(wèn)題。

四大支柱

抽象:定義類的過(guò)程就是一個(gè)抽象的過(guò)程,需要做數(shù)據(jù)抽象和行為抽象,數(shù)據(jù)抽象找到對(duì)象的屬性(保存對(duì)象狀態(tài)的存儲(chǔ)屬性),行為抽象找到對(duì)象的方法(可以給對(duì)象發(fā)的消息)。

封裝:

  • 觀點(diǎn)1: 我們?cè)陬愔袑懛椒ㄆ鋵?shí)就是在封裝API,方法的內(nèi)部實(shí)現(xiàn)可能會(huì)很復(fù)雜,但是這些對(duì)調(diào)用這來(lái)說(shuō)是不可見的,調(diào)用只能看到方法有一個(gè)簡(jiǎn)單清晰的接口。
  • 觀點(diǎn)2: 將對(duì)象的屬性和操作這些屬性的方法綁定在一起。
  • 觀點(diǎn)3: 隱藏一切可以隱藏的實(shí)現(xiàn)細(xì)節(jié),只提供簡(jiǎn)單清晰的接口(界面)。

面向協(xié)議編程(POP)

協(xié)議

protocol 協(xié)議名[: 父協(xié)議1, 父協(xié)議2, ...] {
    // 方法的集合(計(jì)算屬性相當(dāng)于就是方法)
}
  1. 能力:
  2. 約定:
  3. 角色:

依賴倒轉(zhuǎn)原則

用協(xié)議實(shí)現(xiàn)委托回調(diào)

一個(gè)對(duì)象想做某件事情但是自身沒(méi)有能力做這件事情就可以使用委托回調(diào),具體的步驟是:

  1. 設(shè)計(jì)一個(gè)協(xié)議,讓被委托方遵循協(xié)議并實(shí)現(xiàn)協(xié)議中的方法
  2. 委托方有一個(gè)屬性是協(xié)議類型的,通過(guò)該屬性可以調(diào)用協(xié)議中的方法

注意:委托方的協(xié)議類型的屬性通常是可空類型,因?yàn)橐獙懗扇跻?weak)。

其他

  • 協(xié)議組合:protocol<協(xié)議1, 協(xié)議2, ...>
  • 可選方法
  • 協(xié)議擴(kuò)展:對(duì)協(xié)議中的方法給出默認(rèn)實(shí)現(xiàn)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,306評(píng)論 4 61
  • 132.轉(zhuǎn)換錯(cuò)誤成可選值 通過(guò)轉(zhuǎn)換錯(cuò)誤成一個(gè)可選值,你可以使用 try? 來(lái)處理錯(cuò)誤。當(dāng)執(zhí)行try?表達(dá)式時(shí),如果...
    無(wú)灃閱讀 1,430評(píng)論 0 3
  • 轉(zhuǎn)載自:https://github.com/Tim9Liu9/TimLiu-iOS 目錄 UI下拉刷新模糊效果A...
    袁俊亮技術(shù)博客閱讀 12,146評(píng)論 9 105
  • 吾生肖屬羊,羊在漢字中有許多正能量的字,當(dāng)以這些文字做人做事! 善有羊,利他心,慈悲懷,上善若水孝當(dāng)先。 美有羊,...
    孝愛義恩閱讀 504評(píng)論 0 0
  • 穿上薄薄的紗裙,戴上美麗的裝飾,在熒光燈閃爍的舞臺(tái)上自由舞蹈……很多女孩子小時(shí)候都曾經(jīng)做過(guò)這樣的“舞蹈夢(mèng)”! 現(xiàn)在...
    斌力教育周老師閱讀 1,392評(píng)論 0 0

友情鏈接更多精彩內(nèi)容