美文网首页
【Swift】Classes与Structures, Any与A

【Swift】Classes与Structures, Any与A

作者: NiniaW | 来源:发表于2018-05-10 19:54 被阅读0次

    1. Classes vs. Structures

    classes和structures在Swift里有很多共同点,他们都可以:

    • 定义属性(properties)
    • 定义方法(methods)
    • 定义下标(subscripts)
    • 定义初始化器(initializers)
    • 可以被延展(extension)
    • 可以继从协议(protocol)

    他们的区别有:

    • class有继承性(Inheritance);
    • class可以进行type casting;
    • 若要修改属性的值,structure里的函数需加mutating关键字;
    • class的类方法用class关键字,structure用static;
    • struct是值类型(Value Types),赋值时传递变量一个copy;class是引用类型(Reference Types),赋值时传递指针;

    Swift中String、Array、Dictionary等都是struct类型。

    那我们应该什么时候使用structure类型呢?苹果官方给出了如下指示:

    • 需要封装简单的数据类型时;
    • 希望传递其值而非指针时;
    • 其属性也是值类型时;
    • 不需要从其他类型继承属性或行为时。

    2. Any vs. AnyObject

    • Any可以代表任何类型的实例,包括函数;
    • AnyObject可以代表任何类类型的实例(class type)。

    具体请参考苹果官方Doc

    相关文章

      网友评论

          本文标题:【Swift】Classes与Structures, Any与A

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