Swift的struct理解
swift语⾔有两种基本的数据类型,即类class和结构体struct,
swift Foundation框架的SDK,诸如String,Array,Dictionary都是基于struct实现的。
struct与class相⽐,有什么区别呢?
主要的区别就在于class是类型引⽤,⽽struct是值引⽤。
struct没有继承的功能,class有继承功能。
Objective-C中常⽤的NSArray,NSDictionary, NSString, UIKit等都是类型引⽤;⽽NSInteger,CGFloat, CGRect等则是值引⽤。
类型引⽤(class reference),将变量a赋值给变量b,即b = a,这样的赋值语句仅仅将b的指针与a的指针⼀样,指向同⼀块内存区域,此时改变b 的值,a也会跟着改变。
swift语言怎么样值引⽤(value reference),赋值语句b = a处理的过程是开辟⼀个新的内存b,将a变量的内容拷贝后存放到内存b,这时a和b完全没有关系的两个变量,对b的改变不会影响到a。
struct没有继承的功能,这是因为swift在本质上来说是⾯向协议(Protocol Oriented)的语⾔,struct没有也不需要继承的功能,为了实现某个功能,struct去服从并实现某个协议就即可,从⼀个较⾼的层次来看,struct+protocol是构成swift⾯向协议语⾔的两个基⽯。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论