swift_019(Swift 的类)

来源:互联网 发布:手机视频慢动作软件 编辑:程序博客网 时间:2024/05/17 23:54


//***********swift学习之19----***************************


// Swift 类在Objective C中已经比较熟悉。我们可以为类定义属性(常量、变量)和方法。


// 类定义

// 类的属性可以通过 .来访问。格式为:实例化类名.属性名:


class Home {

    var father:String =""

    var mother:String =""

    var wife:String =""

    var daughter:String =""

    

}


let myHome = Home()

myHome.father ="爸爸"

print("myHome都有谁:\(myHome.father)")




// 恒等运算符

/*

 因为类是引用类型,有可能有多个常量和变量在后台同时引用某一个类实例。

 为了能够判定两个常量或者变量是否引用同一个类实例,Swift内建了两个恒等运算符:

 */



// 恒等运算符   ===   如果两个常量或者变量引用同一个类实例则返回 true

// 不恒等运算符 !==   如果两个常量或者变量引用不同一个类实例则返回 true


class SampleClass: Equatable {

    let myProperty:String

    let age:String


    init(s:String, a:String) {

        myProperty = s

        age = a

    }

}

func ==(lhs: SampleClass, rhs:SampleClass) -> Bool {

    return lhs.myProperty== rhs.myProperty&&lhs.age== rhs.age

}


let spClass1 = SampleClass(s:"Hello",a:"5")

let spClass2 = SampleClass(s:"Hello",a:"5")


if spClass1 ===spClass2 {// false

    print("引用相同的类实例\(spClass1)")

}


if spClass1 !==spClass2 {// true

    print("引用不相同的类实例\(spClass2)")

}



let addresses = [SampleClass(s:"Hello",a:"5"),

                 SampleClass(s:"Hello",a:"7"),

                 SampleClass(s:"Hello",a:"9")]

let home = SampleClass(s:"Hello",a:"9")


print(addresses[2]== home)

// Prints "false"

print(addresses.contains(home))

// Prints "true"





0 0