Swift3.0 - 泛型

Swift3.0 - 真的很簡(jiǎn)單
Swift3.0 - 數(shù)據(jù)類型
Swift3.0 - Array
Swift3.0 - 字典
Swift3.0 - 可選值
Swift3.0 - 集合
Swift3.0 - 流控制
Swift3.0 - 對(duì)象和類
Swift3.0 - 屬性
Swift3.0 - 函數(shù)和閉包
Swift3.0 - 初始化和釋放
Swift3.0 - 協(xié)議protocol
Swift3.0 - 類和結(jié)構(gòu)體的區(qū)別
Swift3.0 - 枚舉
Swift3.0 - 擴(kuò)展
Swift3.0 - 下標(biāo)
Swift3.0 - 泛型
Swift3.0 - 異常錯(cuò)誤
Swift3.0 - 斷言
Swift3.0 - 自動(dòng)引用計(jì)數(shù)(strong,weak,unowned)
Swift3.0 - 檢測(cè)API
Swift3.0 - 對(duì)象的標(biāo)識(shí)
Swift3.0 - 注釋
Swift3.0 - 元類型
Swift3.0 - 空間命名
Swift3.0 - 對(duì)象判等
Swift3.0 - 探究Self的用途
Swift3.0 - 類簇
Swift3.0 - 動(dòng)態(tài)調(diào)用對(duì)象(實(shí)例)方法
Swift3.0 - 文本輸出
Swift3.0 - 黑魔法swizzle
Swift3.0 - 鏡像
Swift3.0 - 遇到的坑

You can make generic forms of functions and methods, as well as classes, enumerations, and structures.

  • 需求: 將一個(gè)不確定的類型初始化后放入一個(gè)數(shù)組中,設(shè)計(jì)一個(gè)這樣的接口
      func makeArray<Item>(repeating item: Item, numberOfTimes: Int) -> [Item] {
        var result = [Item]()
        for _ in 0..<numberOfTimes {
             result.append(item)
        }
        return result
      }
  • 需求 : 寫一個(gè)借口,判斷兩個(gè)數(shù)組中否包含有相同的對(duì)象(不是地址相等,是內(nèi)容相等)

    func anyCommonElements<T: Sequence, U: Sequence>(_ lhs: T, _ rhs: U) -> Bool
    where T.Iterator.Element: Equatable, T.Iterator.Element == U.Iterator.Element {
    for lhsItem in lhs {
        for rhsItem in rhs {
            if lhsItem == rhsItem {
               return true
            }
        }
    }
     return false
    }
    

認(rèn)識(shí)幾個(gè)東西

Sequence: 一種協(xié)議 序列
Equatable : 一種協(xié)議 實(shí)現(xiàn)了這種協(xié)議的對(duì)象 就能用 == 進(jìn)行判斷了
Iterator: 提供了序列的迭代接口
Element: 序列中的元素

理解

如果T U 實(shí)現(xiàn)了Sequence 協(xié)議,并且它里面的元素實(shí)現(xiàn)了Equatable 協(xié)議 你就可以調(diào)用這個(gè)借口

如何返回獲取相交的數(shù)據(jù)呢?

func anyCommonElements<T: Sequence, U: Sequence >(_ lhs: T, _ rhs: U) -> Array<T.Iterator.Element>
where T.Iterator.Element: Equatable, T.Iterator.Element == U.Iterator.Element{
var array:[T.Iterator.Element] = Array()
    for lhsItem in lhs {
        for rhsItem in rhs {
            if lhsItem == rhsItem {
                array.append(lhsItem)
            }
        }
    }
    return array
}

代碼很好理解,和上面基本一樣蹂风。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赏殃,隨后出現(xiàn)的幾起案子稳强,更是在濱河造成了極大的恐慌场仲,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件退疫,死亡現(xiàn)場(chǎng)離奇詭異渠缕,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)褒繁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門亦鳞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人棒坏,你說(shuō)我怎么就攤上這事燕差。” “怎么了坝冕?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵徒探,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我喂窟,道長(zhǎng)测暗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任磨澡,我火速辦了婚禮碗啄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘稳摄。我一直安慰自己稚字,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布厦酬。 她就那樣靜靜地躺著尉共,像睡著了一般褒傅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袄友,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天殿托,我揣著相機(jī)與錄音,去河邊找鬼剧蚣。 笑死支竹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鸠按。 我是一名探鬼主播礼搁,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼目尖!你這毒婦竟也來(lái)了馒吴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瑟曲,失蹤者是張志新(化名)和其女友劉穎饮戳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洞拨,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扯罐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了烦衣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歹河。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖花吟,靈堂內(nèi)的尸體忽然破棺而出秸歧,到底是詐尸還是另有隱情,我是刑警寧澤衅澈,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布键菱,位于F島的核電站,受9級(jí)特大地震影響矾麻,放射性物質(zhì)發(fā)生泄漏纱耻。R本人自食惡果不足惜芭梯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一险耀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧玖喘,春花似錦甩牺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)急但。三九已至,卻和暖如春搞乏,著一層夾襖步出監(jiān)牢的瞬間波桩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工请敦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留镐躲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓侍筛,卻偏偏與公主長(zhǎng)得像萤皂,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子匣椰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Swift 有泛型裆熙,但是這次是為了引進(jìn)新的特性,就像遞歸協(xié)議約束(使得受限的擴(kuò)展遵循新協(xié)議的能力)禽笑,比如遵循 Eq...
    Lucky灬Candy閱讀 387評(píng)論 0 0
  • 泛型所解決的問題 先來(lái)看幾個(gè)函數(shù): 上面三個(gè)函數(shù)的功能都是相同的入录,即交換兩個(gè)變量的值,唯一不同之處就在于傳入的變量...
    風(fēng)從虎云從龍118閱讀 249評(píng)論 0 0
  • 1蒲每、隨機(jī)數(shù) 不需要隨機(jī)數(shù)種子 arc4random()%N + begin:產(chǎn)生begin~begin+N的隨機(jī)數(shù)...
    我是小胡胡分胡閱讀 4,141評(píng)論 0 2
  • 136.泛型 泛型代碼讓你可以寫出靈活,可重用的函數(shù)和類型,它們可以使用任何類型,受你定義的需求的約束纷跛。你可以寫出...
    無(wú)灃閱讀 1,454評(píng)論 0 4
  • 十八的月兒也挺圓的,記錄一下這個(gè)夜晚邀杏。 一直以來(lái)排斥的以為不可能完成的事情贫奠,真的做了便也沒什么了。 有時(shí)候被逼一把...
    啥名兒閱讀 332評(píng)論 0 0