swift -- 类和结构体

1.类和结构体的语法定义

//类的定义

class Person {

    //声明属性 : 必须赋予初始值

    var name = ""

    var age : Int = 1

    //在类里面声明一个结构体类型的属性:结构体的对象必须初始化

    var frame : Frame = Frame.init()

}

//结构体的定义

struct Frame {

    //声明属性

    var point : Int = 1

    var rect : Int = 1

2.类和结构体实例

//类的实例化

var person1 = Person.init()

//结构体的实例化

var frame = Frame.init()

 3.访问属性

//类访问属性

person1.name = "wo"

//结构体访问属性

frame.point = 3

 4.类和结构体的 混合应用

person1.frame.point = 44

 5.结构体类型的成员 逐一构造器(类不存在逐一构造器)

let frame2 = Frame.init()

let frame3 = Frame.init(point: 1, rect: 2)  //能够给所有的属性赋值

let person2 = Person.init()    //类不存在逐一构造器

6.结构体 是值类型

//值类型特点: 当用一个值类型的对象给另一个对象赋值时,系统执行的是 拷贝 操作

var frame4 = Frame.init(point: 10, rect: 30)

var frame5 = frame4  //赋值 copy操作

frame4.point = 300

frame5.point = 400

print(frame4.point , frame5.point)    // 300   400

7.类 是引用类型

//引用类型的特点: 当用一个 引用类型的对象给另一个对象赋值时,系统只是做了指针改变指向的改变,内存中没有拷贝

var person3 = Person.init()

 person3.age = 100

var person4 = person3       //这两个对象 的 指向相同,没有拷贝操作

 print(person3.age , person4.age)    //  100

8.恒等运算符 === (3个等号)

//只能判断两个类创建的对象是否相同(比较的是内存地址)

if person3  === person4{

    print("相同")

}else{

    print("不同")

}

原文地址:https://www.cnblogs.com/daxueshan/p/5585234.html