Swift 重构重载运算符示例解析

 更新时间:2023年03月13日 14:13:57   作者:SoaringHeart  
这篇文章主要为大家介绍了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
        );
     }
}

四、总结

1、重载运算符可以将繁琐的操作简单化,复杂的操作封装化,属于质变的重构方式;

2、编程的核心是创造力,你创造各种工具函数的能力越强则工作越轻松,反之亦然。

以上就是Swift 重构重载运算符示例解析的详细内容,更多关于Swift 重构重载运算符的资料请关注脚本之家其它相关文章!

相关文章

  • 举例讲解Swift编程中switch...case语句的用法

    举例讲解Swift编程中switch...case语句的用法

    这篇文章主要介绍了Swift编程中switch...case语句的用法,其中fallthrough关键字在switch语句中的使用是重点,需要的朋友可以参考下
    2016-04-04
  • 深入解析Swift编程中枚举类型的相关使用

    深入解析Swift编程中枚举类型的相关使用

    这篇文章主要介绍了Swift编程中枚举类型的相关使用,是Swift入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • Swift编程中数组的使用方法指南

    Swift编程中数组的使用方法指南

    这篇文章主要介绍了Swift编程中数组的使用方法指南,是Swift入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • swift framework使用OC 代码两种方式示例

    swift framework使用OC 代码两种方式示例

    这篇文章主要为大家介绍了swift framework使用OC 代码两种方式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 超全面的Swift编码规范(推荐)

    超全面的Swift编码规范(推荐)

    这篇文章主要给大家介绍了关于Swift编码规范的相关资料,文中介绍的非常详细,对大家开发swift具有一定的参考价值,需要的朋友可以参考学习,下面来一起看看吧。
    2017-03-03
  • Swift 中的 JSON 反序列化示例详解

    Swift 中的 JSON 反序列化示例详解

    这篇文章主要为大家介绍了Swift中的JSON 反序列化示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Swift之for循环的基础使用学习

    Swift之for循环的基础使用学习

    这篇文章主要为大家介绍了Swift之for循环的基础学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Swift中static和class关键字的深入讲解

    Swift中static和class关键字的深入讲解

    这篇文章主要给大家介绍了关于Swift中static和class关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 详解Swift语言中的类与结构体

    详解Swift语言中的类与结构体

    这篇文章主要介绍了Swift语言中的类与结构体,是Swift入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • Swift进阶教程Mirror反射示例详解

    Swift进阶教程Mirror反射示例详解

    这篇文章主要为大家介绍了Swift进阶教程Mirror反射示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06

最新评论