Swift学习之类和结构体

来源:互联网 发布:算法设计与分析陈慧南 编辑:程序博客网 时间:2024/06/06 23:43

类和结构体

struct Resolution {    var width = 0    var height = 0}class VideoModel {    var resolution = Resolution()    var interlaced = false    var frameRate = 0.0    var name:String?}//结构体自动的提供了成员逐一构造器let resolution = Resolution(width: 1, height: 9)print("\(resolution.width)") //1//结构体、枚举都是值类型,赋值的时候都会复制 指向的都不是同一个地址var hd = resolutionhd.width = 100print(hd.width) //100let videoModel = VideoModel()videoModel.resolution = resolutionvideoModel.interlaced = truevideoModel.frameRate = 1080videoModel.name = "星球大战"print("\(videoModel.name),\(videoModel.resolution),\(videoModel.interlaced),\(videoModel.frameRate)") //Optional("星球大战"),Resolution(width: 1, height: 9),true,1080.0//类是引用类型,当将一个实例赋给另外一个实例的时候,这两个实例指向的是同一块内存地址var tenEnty = videoModelprint(tenEnty.frameRate) //1080tenEnty.frameRate = 2160print(tenEnty.frameRate) //2160.0if tenEnty === videoModel{    print("tenEnty is equal to videoModel") //tenEnty is equal to videoModel}if tenEnty !== videoModel{    print("tenEnty is not equal to videoModel")}//同样的 字符串、数组、字典也是引用类型,它们在赋值或者被 传入函数或者方法的时候都不会发生值拷贝,而是发生现有实例的引用
0 0
原创粉丝点击