您好,登錄后才能下訂單哦!
今天小編給大家分享一下Swift如何重構自定義空等運算符的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
最近在做 Flutter 開發時發現一個之前沒注意到的空等運算符 “??=”,代表左邊為空時,才會把右邊的值賦給左邊,然后返回左邊的變量值;常用于避免多次賦值的情況;發現非常實用,于是給 swift 也自定義一個使用,最終如下;
b1 獲取 a1 的值,a1 如果不為空直接返回;為空則賦值;
var a1: UIView?; let b1 = a1 ??= UITableView(); print("a1: \(a1)");//a1: Optional(<UITableView: 0x7feda0830600; print("b1: \(b1)");//b1: <UITableView: 0x7feda0830600
等同于:
var a1: UIView?; if(a1 == nil) { a1 = UITableView(); } let b1 = a1;
可以讓我們少寫一行代碼;
precedencegroup NilEqualPrecedence { /// 優先從左向右, left, right or none associativity: left higherThan: AssignmentPrecedence//優先級,比等號運算符高 // lowerThan: AdditionPrecedence // 優先級, 比...低 assignment: true // 是否是賦值運算 } /// 空等運算符聲明 infix operator ??=: NilEqualPrecedence /// 空等運算符實現 func ??= <T>(lhs: inout T?, rhs: T) -> T { if lhs == nil { lhs = rhs; } return lhs!; }
以上就是“Swift如何重構自定義空等運算符”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。