Swift 类
Swift 4中的类是灵活构建的基本单元。与常量、变量和函数类似,用户可以定义类的属性和方法。Swift 4允许我们在声明类时不需要创建接口或实现文件。当类被初始化后,默认情况下会创建外部接口。
拥有类的好处
- 继承可以使一个类获取另一个类的属性
 - 
类型转换使用户能够在运行时检查类的类型
 - 
析构函数负责释放内存资源
 - 
引用计数允许类实例有多个引用
 
类和结构的共同特征
- 定义属性以存储值
 - 为提供对值的访问而定义下标
 - 初始化方法以改进功能
 - 通过初始化器定义初始状态
 - 功能扩展到默认值之外
 - 确认协议功能标准
 
语法
Class classname {
   Definition 1
   Definition 2
   --- 
   Definition N
}
类定义
class student {
   var studname: String
   var mark: Int 
   var mark2: Int 
}
创建实例的语法
let studrecord = student()
示例
class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}
class studentMarks {
   var mark = 300
}
let marks = studentMarks()
print("Mark is \(marks.mark)")
当我们使用playground运行上述程序时,我们得到如下结果 –
Mark is 300
以引用类型访问类属性
类属性可以通过’.’语法访问。在实例名称后使用’.’分隔属性名称。
class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}
class studentMarks {
   var mark1 = 300
   var mark2 = 400
   var mark3 = 900
}
let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")
当我们使用编程环境运行上面的程序时,我们得到了以下结果-
Mark1 is 300
Mark2 is 400
Mark3 is 900
类身份运算符
在Swift 4中,类是指多个常量和变量指向同一个实例。为了了解指向特定类实例的常量和变量,使用身份运算符。类实例总是按引用传递。在类中,NSString、NSArray和NSDictionary实例总是被分配和传递作为对现有实例的引用,而不是作为副本。
| 与操作符相同 | 不同于操作符 | 
|---|---|
使用的操作符为(===) | 
使用的操作符为(!==) | 
| 当两个常量或变量指向同一个实例时,返回true | 当两个常量或变量指向不同实例时,返回true | 
class SampleClass: Equatable {
   let myProperty: String
   init(s: String) {
      myProperty = s
   }
}
func ==(lhs: SampleClass, rhs: SampleClass) -> Bool {
   return lhs.myProperty == rhs.myProperty
}
let spClass1 = SampleClass(s: "Hello")
let spClass2 = SampleClass(s: "Hello")
spClass1 === spClass2 // false
print("\(spClass1)")
spClass1 !== spClass2 // true
print("\(spClass2)")
当我们使用playground运行上述程序时,我们得到以下结果 –
main.SampleClass
main.SampleClass
极客教程