验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

Swift如何重构重载运算符

阅读:707 来源:乙速云 作者:代码code

Swift如何重构重载运算符

      基础类型 String 为例

      重载乘法运算符

      将一段字符串重复 n 次拼接在一起;

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

      源码实现:

      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)

      源码实现:

      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
              );
           }
      }
    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>