美文网首页
Swift中类和结构体的选择

Swift中类和结构体的选择

作者: Seacen_Liu | 来源:发表于2017-11-10 17:21 被阅读0次

    在代码中,我们可以使用类和结构体来定义自己的自定义数据类型。然而,结构体实例总是通过值传递,类实例总是通过引用传递。这意味两者适用不同的任务。当我们在考虑一个工程项目的数据结构和功能的时候,就需要决定每个数据结构是定义成类还是结构体。

    按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体:

    1. 该数据结构的主要目的是用来封装少量相关简单数据值。
    2. 有理由预计该数据结构的实例在被赋值或传递时,封装的数据将会被拷贝而不是被引用。
    3. 该数据结构中储存的值类型属性,也应该被拷贝,而不是被引用。
    4. 该数据结构不需要去继承另一个既有类型的属性或者行为。

    举例来说,以下情境中适合使用结构体:

    1. 几何形状的大小,封装一个 width 属性和 height 属性,两者均为 Double 类型。
    2. 一定范围内的路径,封装一个 start 属性和 length 属性,两者均为 Int 类型。
    3. 三维坐标系内一点,封装 x , y 和 z 属性,三者均为 Double 类型。

    在所有其它案例中,定义一个类,生成一个它的实例,并通过引用来管理和传递。实际中,这意味着绝大部分的自定义数据构造都应该是类,而非结构体。

    相关文章

      网友评论

          本文标题:Swift中类和结构体的选择

          本文链接:https://www.haomeiwen.com/subject/tjtimxtx.html