美文网首页
类和结构体(引用类型和值类型)

类和结构体(引用类型和值类型)

作者: 凌云壮志几多愁 | 来源:发表于2015-09-10 11:39 被阅读153次

1.结构体总是通过被复制的方式在代码中传递,因此不要使用引用计数

2.结构体有默认的成员逐一构造器,但是类没有

例如:

structiPhone {

varlength:CGFloat=0

varwidth:CGFloat=0

}

variPhone5 =iPhone(length:320, width:568)

3.值类型被赋予一个变量,常量或者本身被船体给一个函数的时候,实际上操作的是其拷贝

4.引用类型在被赋予到一个变量,常量或者被传递到一个函数的时,操作的是引用,并不是拷贝,引用的是已存在的实例本身而不是其拷贝

这里是分割线--------------------------------------------------------------------

我来说一下我对类和结构体(也就是引用类型和值类型)的理解吧:

在这么一个情景中:

我和小明相约一起在操场上玩遥控车。小明是富二代,我是一个穷屌丝,买不起遥控车,主要关注的遥控车而不是遥控器,遥控器的作用是为做一些改变

//遥控车

classRadioControlledCar {

varspeed:Int=Int()

init(speed:Int){

self.speed= speed

}

}

//遥控器

classRemoteControl {

varcar:RadioControlledCar!

}

引用类型:小明壕性大发,我们一人一个遥控器,但是美中不足的是:越有钱越抠,他让我和他玩同一辆遥控车

(1).当我让四驱车加速前进的时候,小明遥控器对应的四驱车是不是也在加速前进了。注意:现在是我来操作遥控车

varxm_s_Control =RemoteControl()

varmy_Control =RemoteControl()

xm_s_Control.car=RadioControlledCar(speed:0)

my_Control.car=xm_s_Control.car

my_Control.car.speed=50

println(xm_s_Control.car.speed)//小明的角度来看汽车速度为:50

println(my_Control.car.speed)//我的角度来看汽车速度:50

角度不同而已,汽车都是同一辆汽车:

(2).现在小明感觉不高兴了,你给我车加速,那我就偏用我遥控器来减速。注意:现在是小明来操作遥控车

xm_s_Control.car.speed=20

println(xm_s_Control.car.speed)//小明的角度来看汽车速度为:20

println(my_Control.car.speed)//我的角度来看汽车速度:20

值类型:小明感觉自己的车被操纵了,简直不能忍,果断也给我买了一辆一模一样的遥控车,让我自己到边上去玩。

//遥控车

structRadioControlledCar_S {

varspeed:Int=Int()

}

//遥控器

classRemoteControl_S {

varcar:RadioControlledCar_S!

init(){

}

}

varxm_s_control_s =RemoteControl_S()

varmy_Control_s =RemoteControl_S()

xm_s_control_s.car=RadioControlledCar_S(speed:20)

my_Control_s.car=xm_s_control_s.car

my_Control_s.car.speed=50

println(my_Control_s.car.speed)//我的角度来看汽车速度:50

println(xm_s_control_s.car.speed)//小明的角度来看汽车速度没有发生改变还是为:20

xm_s_control_s.car.speed=80

println(xm_s_control_s.car.speed)//小明的角度来看汽车速度为:80

println(my_Control_s.car.speed)//我的角度来看汽车速度为:50

己很明显我们之间相互没有干扰摩擦,他玩他的,我玩我的,就这样,有一个土豪朋友,免费得到一辆遥控车。

这是我在yy了

相关文章

  • swift 结构体和类的区别

    结构体和类的本质区别(64bit下) 结构体是值类型(枚举也是值类型) 类是引用类型(指针类型) 类 结构体

  • Swift5 值类型与引用类型探究

    在Swift中结构体和类最大的区别就是结构体是值类型,类是引用类型。今天我们探究一下值类型和引用类型 一、类型表 ...

  • 类和结构体

    类与结构体 本节内容包括: 类和结构体对比 结构体和枚举是值类型 类是引用类型 类和结构体的选择 集合类型的赋值与...

  • swift学习三(类与结构体)

    一、类和结构体对比 二、结构体和枚举是值类型 三、类是引用类型 四、类和结构体的选择 五、字符串、数组、和字典类型...

  • 类和结构体(Classes & Structures)

    目录 类和结构体对比 结构体和枚举是值类型 类是引用类型 字符串、数组和字典类型的赋值与复制行为 类和结构体对比 ...

  • Day9 类和结构体

    本页包含内容:• 类和结构体对比• 结构体和枚举是值类型• 类是引用类型• 类和结构体的选择• 字符串、数组、和字...

  • swift面试题

    class 和 struct 的区别 class 为类, struct 为结构体, 类是引用类型, 结构体为值类型...

  • Swift学习笔记----类和结构体

    本页包含内容: 类和结构体对比结构体和枚举是值类型类是引用类型类和结构体的选择字符串、数组、和字典类型的赋值与复制...

  • Swift结构体和类

    最近在学习,顺便总结和记录一下 结构体和类 要说结构体和类就需要先说说值类型和引用类型了 Swift的类型分为值类...

  • 一些问题(一)

    1. 类(class)和结构体(struct)有什么区别? 在 Swift 中,类是引用类型,结构体是值类型。值类...

网友评论

      本文标题:类和结构体(引用类型和值类型)

      本文链接:https://www.haomeiwen.com/subject/qcjpcttx.html