最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Swift?重構(gòu)重載運(yùn)算符示例解析

 更新時(shí)間:2023年03月13日 14:13:57   作者:SoaringHeart  
這篇文章主要為大家介紹了Swift?重構(gòu)重載運(yùn)算符示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一、思路來(lái)源

研究自定義運(yùn)算符的時(shí)候,又重新看了一下重載運(yùn)算符,覺(jué)得挺有意思的,隨手封裝了幾個(gè)。

二、基礎(chǔ)類(lèi)型 String 為例

重載乘法運(yùn)算符

將一段字符串重復(fù) n 次拼接在一起;

let c = "abc"*3;
print("c: \(c)");//c: abcabcabc

源碼實(shí)現(xiàn):

public extension String{
    static func * (lhs: String, rhs: Int) -> String {
        return String(repeating: lhs, count: rhs);
     }
}

三、對(duì)象類(lèi)型 UIEdgeInsets 為例

重載加法運(yùn)算符將

將 top, left, bottom, right 屬性逐個(gè)求和;

let edg1 = UIEdgeInsets(top: 1, left: 2, bottom: 3, right: 4);
let edg2 = UIEdgeInsets(top: 4, left: 3, bottom: 2, right: 1);
let e = edg1 + edg2;

print("edg1: \(edg1)");//edg1: UIEdgeInsets(top: 1.0, left: 2.0, bottom: 3.0, right: 4.0)
print("edg2: \(edg2)");//edg2: UIEdgeInsets(top: 4.0, left: 3.0, bottom: 2.0, right: 1.0)
print("e: \(e)");//e: UIEdgeInsets(top: 5.0, left: 5.0, bottom: 5.0, right: 5.0)

源碼實(shí)現(xiàn):

public extension UIEdgeInsets{

    static func + (lhs: UIEdgeInsets, rhs: UIEdgeInsets) -> UIEdgeInsets {
        return UIEdgeInsets(lhs.top + rhs.top,
                            lhs.left + rhs.left,
                            lhs.bottom + rhs.bottom,
                            lhs.right + rhs.right
        );
     }
}

四、總結(jié)

1、重載運(yùn)算符可以將繁瑣的操作簡(jiǎn)單化,復(fù)雜的操作封裝化,屬于質(zhì)變的重構(gòu)方式;

2、編程的核心是創(chuàng)造力,你創(chuàng)造各種工具函數(shù)的能力越強(qiáng)則工作越輕松,反之亦然。

以上就是Swift 重構(gòu)重載運(yùn)算符示例解析的詳細(xì)內(nèi)容,更多關(guān)于Swift 重構(gòu)重載運(yùn)算符的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Swift中的數(shù)據(jù)類(lèi)型類(lèi)型轉(zhuǎn)換

    詳解Swift中的數(shù)據(jù)類(lèi)型類(lèi)型轉(zhuǎn)換

    Swift中的類(lèi)型轉(zhuǎn)換可以結(jié)合類(lèi)的繼承等面向?qū)ο蟮木幊烫匦詠?lái)進(jìn)行,本文中我們就來(lái)詳解Swift中的數(shù)據(jù)類(lèi)型類(lèi)型轉(zhuǎn)換,需要的朋友可以參考下
    2016-07-07
  • switch多選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)示例詳解

    switch多選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)示例詳解

    這篇文章主要介紹了switch多選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Swift讀取App的版本信息與PCH文件詳解

    Swift讀取App的版本信息與PCH文件詳解

    這篇文章主要介紹了Swift讀取App的版本信息與PCH文件的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-03-03
  • Swift教程之下標(biāo)詳解

    Swift教程之下標(biāo)詳解

    這篇文章主要介紹了Swift教程之下標(biāo)詳解,本文講解了下標(biāo)語(yǔ)法、下標(biāo)的使用、下標(biāo)選項(xiàng)等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • 深入解析Swift代理模式

    深入解析Swift代理模式

    委托(代理)是一種設(shè)計(jì)模式,它允許類(lèi)或結(jié)構(gòu)體將一些需要它們負(fù)責(zé)的功能交由(委托)給其他的類(lèi)型。下面這篇文章主要介紹了Swift代理模式的相關(guān)資料,文章開(kāi)始先介紹了Objective-C相關(guān)的內(nèi)容,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-03-03
  • Swift中常量和變量的區(qū)別與聲明詳解

    Swift中常量和變量的區(qū)別與聲明詳解

    Swift語(yǔ)言同樣和Java和OC等語(yǔ)言一樣是同樣是需要聲明常量和變量的,下面就讓我們來(lái)學(xué)習(xí)一下Swift的常量和變量。這篇文章主要給大家介紹了關(guān)于Swift中常量和變量的區(qū)別與聲明的相關(guān)資料,需要的朋友可以參考下。
    2017-11-11
  • Swift使用WKWebView在iOS應(yīng)用中調(diào)用Web的方法詳解

    Swift使用WKWebView在iOS應(yīng)用中調(diào)用Web的方法詳解

    這篇文章主要介紹了Swift使用WKWebView在iOS應(yīng)用中調(diào)用Web的方法詳解,使用WKWebView便等于使用和Safari中相同的JavaScript解釋器,用來(lái)替代過(guò)去的UIWebView,需要的朋友可以參考下
    2016-04-04
  • 淺談Swift派發(fā)機(jī)制

    淺談Swift派發(fā)機(jī)制

    派發(fā)目的是讓 CPU 知道被調(diào)用的函數(shù)在哪里。Swift 語(yǔ)言是支持編譯型語(yǔ)言的直接派發(fā),函數(shù)表派發(fā)和消息機(jī)制派發(fā)三種派發(fā)方式的,下面分別對(duì)這三種派發(fā)方式說(shuō)明下。
    2021-06-06
  • Swift用final關(guān)鍵字來(lái)防止重寫(xiě)

    Swift用final關(guān)鍵字來(lái)防止重寫(xiě)

    final關(guān)鍵字在大多數(shù)的編程語(yǔ)言中都存在,表示不允許對(duì)其修飾的內(nèi)容進(jìn)行繼承或者重新操作。下面通過(guò)實(shí)例代碼給大家介紹swift用final關(guān)鍵字來(lái)防止重寫(xiě)
    2016-12-12
  • 在SpringBoot中實(shí)現(xiàn)適配器模式的兩種方式

    在SpringBoot中實(shí)現(xiàn)適配器模式的兩種方式

    這篇文章主要介紹了在SpringBoot中實(shí)現(xiàn)適配器模式的兩種方式,通過(guò)實(shí)現(xiàn)類(lèi)定義類(lèi)型字段實(shí)現(xiàn)和以動(dòng)態(tài)service名稱(chēng)的方式實(shí)現(xiàn),并且通過(guò)代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-03-03

最新評(píng)論

游戏| 阆中市| 武平县| 中宁县| 资阳市| 扶沟县| 和顺县| 克拉玛依市| 马鞍山市| 克什克腾旗| 乡城县| 郴州市| 东乌珠穆沁旗| 民权县| 安泽县| 扬中市| 六枝特区| 手游| 宝应县| 黔西县| 扎鲁特旗| 吴川市| 台东县| 周至县| 石台县| 从化市| 德安县| 额尔古纳市| 罗田县| 浑源县| 抚宁县| 洛扎县| 苏尼特右旗| 大洼县| 寿宁县| 房山区| 孝感市| 郎溪县| 龙陵县| 额济纳旗| 洞口县|