您需要 登录 才可以下载或查看,没有账号?注册
x
前言Swift type System
Swift是强类型的,尽管只有六种类型。 - 命名类型: protocol, class , struct , enum
- 复合类型:tuple, function
可能会有疑问,那些基本类型:Bool,Int,UInt, Float, Double, Character, String, Array, Set, Dictionary, Optional。实际上他们都是通过命名类型创建的。 Struct Class and Enum 比较Swift中提供了多种可以结构化存储数据的方式,它们是: struct、enum和
class。Swift标准库中的绝大多数类型都是struct,甚至Foundation中的一些类也提供了它们在Swift中的struct版本,而class和enum只占很少一部分。 Class,Struct and Enum对比表 copy byinheritancestatic variableinstance variablestatic methodinstance method
ClassReference✅✅✅✅✅
StructValue✘✅✅✅✅
EnumValue✘✅✘✅✅共同点: - 都可以当作
- 都可以使用泛型
- protocol
- 都可以使用extension,扩充method
如何抉择?通常,在平时的编程中,按照对象的生命周期形态,可以把使用的类型分成两大类: - 一类必须有明确生命周期的,它们必须被明确的初始化、使用、最后明确的被释放。例如:文件句柄、数据库连接、线程同步锁等等。这些类型的初始化和释放都不是拷贝内存这么简单,通常,这类内容,我们会选择使用class来实现。
- 另一类,则是没有那么明显的生命周期。 例如:整数、字符串、URL等等。这些对象一旦被创建之后,就很少被修改,我们只是需要使用这些对象的值,用完之后,我们也无需为这些对象的销毁做更多额外的工作,只是把它们占用的内存回收就好了。这类内容,通常我们会选择使用struct或enum来实现。
|