Swift?重構(gòu)重載運算符示例解析
一、思路來源
研究自定義運算符的時候,又重新看了一下重載運算符,覺得挺有意思的,隨手封裝了幾個。
二、基礎(chǔ)類型 String 為例
重載乘法運算符
將一段字符串重復(fù) n 次拼接在一起;
let c = "abc"*3; print("c: \(c)");//c: abcabcabc
源碼實現(xiàn):
public extension String{ static func * (lhs: String, rhs: Int) -> String { return String(repeating: lhs, count: rhs); } }
三、對象類型 UIEdgeInsets 為例
重載加法運算符將
將 top, left, bottom, right 屬性逐個求和;
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)
源碼實現(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、重載運算符可以將繁瑣的操作簡單化,復(fù)雜的操作封裝化,屬于質(zhì)變的重構(gòu)方式;
2、編程的核心是創(chuàng)造力,你創(chuàng)造各種工具函數(shù)的能力越強則工作越輕松,反之亦然。
以上就是Swift 重構(gòu)重載運算符示例解析的詳細內(nèi)容,更多關(guān)于Swift 重構(gòu)重載運算符的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Swift中實現(xiàn)點擊、雙擊、捏、旋轉(zhuǎn)、拖動、劃動、長按手勢的類和方法介紹
這篇文章主要介紹了Swift中實現(xiàn)點擊、雙擊、捏、旋轉(zhuǎn)、拖動、劃動、長按手勢的類和方法介紹,本文分別給出了各種手勢的實現(xiàn)代碼,需要的朋友可以參考下2015-01-01在SpringBoot中實現(xiàn)適配器模式的兩種方式
這篇文章主要介紹了在SpringBoot中實現(xiàn)適配器模式的兩種方式,通過實現(xiàn)類定義類型字段實現(xiàn)和以動態(tài)service名稱的方式實現(xiàn),并且通過代碼示例講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-03-03用Swift構(gòu)建一個簡單的iOS郵件應(yīng)用的方法
這篇文章主要介紹了用Swift構(gòu)建一個簡單的iOS郵件應(yīng)用的方法,包括查看和標記已讀等基本的郵件應(yīng)用功能,需要的朋友可以參考下2015-07-07