- 类与结构体(Swift中,类定义后,所有相关的文件都能使用这个类,即我们不需要导入该类)
- 定义与实例化
class aClass { } struct AStructure { } var aStru = AStructure() var aClas = aClass()
- 属性(与OC相同,使用
.
可以对类属性进行getter和setter)
class aClass { var name:String? } var aClas = aClass() aClas.name = "class" if aClas.name != nil { print("the name of aClas is \(aClas.name!)") }
- 便利构造器(结构体自带,而类没有)
struct AStructure { var number = 0 var grade = 0 } var aStru = AStructure(number: 10, grade: 5) print("this stu is in grade \(aStru.grade) and his/her number is \(aStru.number)")
- 类和结构体的区别
- 类属于引用类型
- 引用类型:Class,闭包属于引用类型,当我们使用引用类型赋值时,引用的是实例本身,而不是副本,也就是我们对新的实例操作,也会影响引用的实例
class aClass { var name:String? } var aClas = aClass() aClas.name = "aclass" var bClas = aClas bClas.name = "bclass" if aClas.name != nil { print("the name of aClas is \(aClas.name!)") }
- 结构体属于值类型
- 值类型:
String
,Int
,Float
等Swift基本数据类型为值类型,当每次我们使用值类型赋值时,会生成一个拷贝副本,两者之间完全不相干
struct AStructure { var number = 0 var grade = 0 } var aStru = AStructure(number: 10, grade: 5) var bStru = aStru bStru.grade = 6 print("the a grade \(aStru.grade),the b grade \(bStru.grade)")
- 值类型:
- 类属于引用类型
网友评论