Swift教程-类与结构体

前端之家收集整理的这篇文章主要介绍了Swift教程-类与结构体前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

swift 中类于结构体

swift中结构体与类既相似,又有不同。

相似点
- 可以保存变量
- 保存函数

不同点
- 结构体不支持继承,类支持
- 结构体是引用类型,类引用类型

.

  1. 定义
// 结构体定义@H_502_20@
struct@H_502_20@ SomeStructure {
    //成员变量@H_502_20@
    var@H_502_20@ width = 0@H_502_20@
    var@H_502_20@ height = 0@H_502_20@
}

// 类定义@H_502_20@
class@H_502_20@ SomeClass@H_502_20@ {@H_502_20@
    //成员变量@H_502_20@
    var@H_502_20@ resolution = Resolution()
    var@H_502_20@ interlaced = false@H_502_20@
    var@H_502_20@ frameRate = 0.0@H_502_20@
    var@H_502_20@ name: String?

}

2.实例化变量

let@H_502_20@ someResolution = Resolution()
let@H_502_20@ someVideoMode = VideoMode()
//带参数的初始函数@H_502_20@
let@H_502_20@ vga = Resolution(width: 640@H_502_20@,height: 480@H_502_20@)

3.结构体是值变量

let@H_502_20@ hd = Resolution(width@H_502_20@: 1920@H_502_20@,height@H_502_20@: 1080@H_502_20@)
var@H_502_20@ cinema = hd
cinema.width = 2048@H_502_20@

print@H_502_20@("cinema is now \(cinema.width) pixels wide"@H_502_20@)
//@H_502_20@ Prints "cinema is now 2048 pixels wide"@H_502_20@

print@H_502_20@("hd is still \(hd.width) pixels wide"@H_502_20@)
//@H_502_20@ Prints "hd is still 1920 pixels wide"@H_502_20@

4.类是引用变量
类是类似于C指针一样的引用变量

let@H_502_20@ tenEighty = VideoMode()
tenEighty.frameRate = 25.0

let@H_502_20@ alsoTenEighty = tenEighty
alsoTenEighty.frameRate = 30.0

// Prints "The frameRate property of@H_502_20@ tenEighty is@H_502_20@ now@H_502_20@ 30.0"
print("The frameRate property of@H_502_20@ tenEighty is@H_502_20@ now@H_502_20@ \(tenEighty.frameRate)")

5.Swift基本数据类型内的结构体与Foundation内的类

在swift中的数据类型均为结构体,如String,Array,Dictionary。即在赋值传递中均为值传递
在Foundation库中,NSString,NSArry,NSDictionary都是用类实现,在传递的过程中为引用传递

猜你在找的Swift相关文章