【代码片-1】 Swift结构体的实例变量以及成员方法,结构体与类的区别

浏览: 54 发布日期: 2016-11-30 分类: swift
/*
 1、结构体定义,实例和属性访问
 struct Rect-C {
    Double width;
    Double height;
 };
 */
print("1、结构体定义")
//struct关键字
//struct Rect {
//    var width:Double = 0.0
//    var height:Double = 0.0
//    //成员方法可以访问使用成员属性
//    func getWidth() -> Double {
//        return width
//    }
//    //和C、OC不一样:swift结构体中还可以有成员方法
//    func show(){
//        print("width=\(width),height=\(height)")
//    }
//}

/*
 class 类名称 {
 }  基本和结构体一致,class关键字
 */
class Rect {
    var width:Double = 0.0
    var height:Double = 0.0
    //成员方法可以访问使用成员属性
    func getWidth() -> Double {
        return width
    }
    //和C、OC不一样:swift结构体中还可以有成员方法
    func show(){
        print("width=\(width),height=\(height)")
    }
}

//结构体逐一成员构造器
var rect:Rect = Rect()//Rect(width:5,height:5)
//print("\(rect.width),\(rect.height)")

//成员方法的调用语法 --  对象.方法()
rect.getWidth()

//rect.width = 10
//rect.height = 10
//print("\(rect.width),\(rect.height)")


//struct结构体:rect1和rect是两个不同的实例,但是内容一致(拷贝)
//class类:rect1和rect指向同一块内存(引用了同一个实例,不会拷贝)
var rect1 = rect//给结构体赋值,内容完全一样
rect.width = 10
rect.height = 10
rect.show()
rect1.show()

//类是引用类型,结构体是值类型
//===或者!== 三个===恒等于(等价),只可以应用于类的实例
if rect1 === rect{
    print("equal")
}
返回顶部