Swift?重構(gòu)重載運(yùn)算符示例解析
一、思路來(lái)源
研究自定義運(yùn)算符的時(shí)候,又重新看了一下重載運(yùn)算符,覺(jué)得挺有意思的,隨手封裝了幾個(gè)。
二、基礎(chǔ)類型 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ì)象類型 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í)現(xiàn)點(diǎn)擊、雙擊、捏、旋轉(zhuǎn)、拖動(dòng)、劃動(dòng)、長(zhǎng)按手勢(shì)的類和方法介紹
這篇文章主要介紹了Swift中實(shí)現(xiàn)點(diǎn)擊、雙擊、捏、旋轉(zhuǎn)、拖動(dòng)、劃動(dòng)、長(zhǎng)按手勢(shì)的類和方法介紹,本文分別給出了各種手勢(shì)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-01-01詳談swift內(nèi)存管理中的引用計(jì)數(shù)
下面小編就為大家?guī)?lái)一篇詳談swift內(nèi)存管理中的引用計(jì)數(shù)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09在SpringBoot中實(shí)現(xiàn)適配器模式的兩種方式
這篇文章主要介紹了在SpringBoot中實(shí)現(xiàn)適配器模式的兩種方式,通過(guò)實(shí)現(xiàn)類定義類型字段實(shí)現(xiàn)和以動(dòng)態(tài)service名稱的方式實(shí)現(xiàn),并且通過(guò)代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-03-03用Swift構(gòu)建一個(gè)簡(jiǎn)單的iOS郵件應(yīng)用的方法
這篇文章主要介紹了用Swift構(gòu)建一個(gè)簡(jiǎn)單的iOS郵件應(yīng)用的方法,包括查看和標(biāo)記已讀等基本的郵件應(yīng)用功能,需要的朋友可以參考下2015-07-07