Files
the-swift-programming-langu…/source/chapter2/09_Classes_and_Structures.md
2014-06-09 05:16:07 -05:00

2.1 KiB
Raw Blame History

类和结构体

类和结构体是人们构建代码所用的一种通用且灵活的构造体。为了在类和结构体中实现各种功能,我们必须要严格按照对于常量,变量以及函数所规定的语法规则来定义属性和添加方法。

与其他编程语言所不同的是Swift 并不要求你为自定义类和结构去创建独立的接口和实现文件。你所要做的是在一个单一文件中定义一个类或者结构体,系统将会自动生成面向其它代码的外部接口。

通常一个的实例被称为对象。然而在Swift 中,类和结构体的关系要比在其他语言中更加的密切,本章中所讨论的大部分功能都可以用在类和结构体上。因此,我们会主要使用实例而不是对象

类和结构体之比较

Swift 中类和结构体有很多共同点。共同处在于:

  • 定义属性用于储存值
  • 定义方法用于提供功能
  • 定义下标用于通过下标语法访问值
  • 定义初始化器用于生成初始化值
  • 通过扩展以增加默认实现的功能
  • 符合协议以对某类提供标准功能

更多信息请参见 属性方法下标初始化扩展,和协议

与结构体相比,类还有如下的附加功能:

  • 继承允许一个类继承另一个类的特征
  • 类型转换允许在运行时检查和解释一个类实例的类型
  • 取消初始化器允许一个类实例释放任何其所被分配的资源
  • 引用计数允许对一个类的多次引用

更多信息请参见继承类型转换初始化,和自动引用计数

结构体总是通过被复制的方式在代码中传递,因此请不要使用引用计数。

定义

类和结构体有着类似的定义方式。我们通过关键字classstruct来分别表示类和结构体,并在一对大括号定义它们的具体内容:

class SomeClass {
	// class definition goes here
}
struct SomeStructure {
	// structure definition goes here
}