Swift 基础学习(结构体和类)

来源:互联网 发布:淘宝合在一起卖 编辑:程序博客网 时间:2024/05/15 11:44
/*Swift结构体和类的初步(1)结构体定义(2)结构体实例和属性访问(3)结构体的构造器(4)给结构体加上方法(5)结构体是指引用(6)类定义(7)类和结构体的比较(8)类是引用类型(9)恒等运算符*///(1)定义一个结构体//struct+结构体名struct Rect {    var width: Double;    var height: Double}//(2)结构体实例和属性访问struct Rect1 {    var width: Double = 10.0    var height: Double = 10.0}//声明Rect1的对象(或者说是实例),方法为:类的名称+()var rect: Rect1 = Rect1()//访问结构体里面的变量类似于点语法print("\(rect.width),\(rect.height)")rect.height = 103rect.width = 102print("\(rect.width),\(rect.height)")//(3)结构体逐一成员构造器//Rect1相当于函数名称,后面即为函数的参数,成员变量顺序必须一致,而且还必须包含所有的成员,否则会报错var rect1: Rect1 = Rect1(width: 9, height: 20)//(4)给结构体加上方法struct Rect2 {    var width: Double = 10.0    var height: Double = 10.0    //成员方法可以访问使用成员属性    func getWidth() -> Double {        return width    }    func show() {        print("width = \(width),height = \(height)")    }}var rect2: Rect2 = Rect2(width: 9, height: 20)//成员方法的调用语法 对象.方法()rect2.getWidth()print(rect2.getWidth())rect2.show()//(5)结构体的整体赋值var rect3 = rect2//假设两种情况:(1)rect3跟rect2指向同一块内存,(2)rect2跟rect3是两个不同的实例,但是内容一致rect2.width = 99rect2.show()//通过验证,rect2和rect3是两个不同的实例rect3.show()//(6)类定义/*class 类名称 {}*///我们将上面定义的结构体关键字改为class即可class Rect4 {    var width: Double = 10.0    var height: Double = 10.0    //成员方法可以访问使用成员属性    func getWidth() -> Double {        return width    }    func show() {        print("width = \(width),height = \(height)")    }}var rect4: Rect4 = Rect4()//Rect4(width: 9, height: 20)rect4.show()//(7&8)最大不同点:当是类的时候,类对象赋值不会引起拷贝的操作,而是rect5引用了rect4指向同一块内存;类是引用类型var rect5 = rect4rect4.width = 999rect4.show()rect5.show()//(9)恒等运算符// === !== 用于判断两个或多个对象是否指向同一个类的实例if rect4 === rect5 {    print("equal")}
0 0
原创粉丝点击