println("The frameRate property of tenEighty is now (tenEighty.frameRate)")
// prints "The frameRate property of tenEighty is now 30.0"
注意到tenEighty和alsoTenEighty是被定义为常量的,而不是变量。但是我们还是可以改变他们的属性值,这是因为它们本身实际上没有改变,它们并没有保存这个VideoMode的实例,仅仅只是引用了一个VideoMode实例,而我们修改的也是它们引用的实例中的属性。
特征操作
因为类是引用类型,那么就可能存在多个常量或者变量只想同一个类的实例(这对于数值类型的结构和枚举是不成立的)。
可以通过如下两个操作来判断两个常量或者变量是否引用的是同一个类的实例:
相同的实例(===)
不同的实例(!==)
使用这些操作可以检查:
复制代码
if tenEighty === alsoTenEighty {
println("tenEighty and alsoTenEighty refer to the same Resolution instance.")
}
// prints "tenEighty and alsoTenEighty refer to the same Resolution instance."
注意是相同的实例判断使用三个连续的等号,这和相等(两个等号)是不同的
实例相同表示的是两个变量或者常量所引用的是同一个类的实例
相等是指两个实例在数值上的相等,或者相同。
当你定义一个类的时候,就需要说明什么样的时候是两个类相等,什么时候是两个类不相等。更多内容可以从相等操作一章中获得。
指针
如果你有C,C++或者Objective-C的编程经验,你一定知道在这些语言中使用指针来引用一个内存地址。Swift中引用一个实例的常量或变量跟C中的指针类似,但是不是一个直接指向内存地址的指针,也不需要使用*记号表示你正在定义一个引用。Swift中引用和其它变量,常量的定义方法相同。
4、如何选择使用类还是结构
在代码中可以选择类或者结构来实现你所需要的代码块,完成相应的功能。但是结构实例传递的是值,而类实例传递的是引用。那么对于不同的任务,应该考虑到数据结构和功能的需求不同,从而选择不同的实例。








