swift_019(Swift 的类)


//***********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"





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值