Swift 中的值类型和引用类型

原创 2015年07月06日 16:39:02

值类型和引用类型只在之前的面试过程中碰到过,最近学习过程中,在体验 swift 的面向对象特性的时候,在 struct 和 class 中再次碰到了这个问题,说一说自己的收获吧。


值类型和引用类型在 OC 里面理解起来应该更方便。在 OC 中,我们实例化对象的时候有两种方式。一种是需要在变量名前面加个*(指针),一种是直接进行生命。第一种是引用对象,第二种是值类型。从声明方式我们也就知道了值类型和引用了类型的区别:值类型在赋值或者函数传递参数的时候,是创建了一个copy,副本传过去,函数在调用的过程中并不会影响原始数据;引用类型则是利用指针将数据本身传递过去了,所以会影响原数据。

值类型包括:整型、浮点型、布尔型、字符串、元组、集合和枚举。

引用类型包括:类!类!类!(重要的事情要说三遍)


这里代码会在图中所示处报错,错误的意思是你不能给 dept.name赋值,也就是由于 dept 是结构体,是值类型,所以即使函数在这里改变了name 值,也并不会改变结构体中的 name 的值,那怎么操作呢,这里需要用到 swift 形参的一种传递方法 in-out 传参。利用 inout 关键字定义一个 in-out 形参,这里函数会改变这个值,形成一个副本,并且用这个副本去替换原来的变量。



Reference:Swift 开发指南 关东升 2014 人民邮电出版社

Swift 值类型和引用类型

Swift中的类型分为两类:一,值类型(value types),每个值类型的实例都拥有各自唯一的数据,通常它们是结构体,枚举或元组;二,引用类型(reference types),引用类型的实例共享...
  • zhangao0086
  • zhangao0086
  • 2014年08月20日 16:58
  • 10515

Swift值类型和引用类型

转自:http://letsswift.com/2014/08/value-type-and-reference-type/ 在Swift中,类型分为两类:第一种是值类型,该类型的每...
  • u010998924
  • u010998924
  • 2015年12月02日 19:50
  • 149

Swift 值类型和引用类型

Swift中的类型分为两类:一,值类型(value types),每个值类型的实例都拥有各自唯一的数据,通常它们是结构体,枚举或元组;二,引用类型(reference types),引用类型的实例...
  • GuiLehan
  • GuiLehan
  • 2016年11月02日 21:43
  • 81

Swift 中的引用类型与值类型

关于引用类型与值类型,有过其他平台开发经验的朋友相信不会陌生。我们使用其他开发环境的大多数情况下,我们其实都在于引用类型打交道,了解值类型和引用类型的使用对我们写出更加可靠的程序非常的关键,那么我们来...
  • u011344883
  • u011344883
  • 2016年05月16日 11:57
  • 238

C#详解值类型和引用类型区别

首先,什么是值类型,什么是引用类型? 在C#中值类型的变量直接存储数据,而引用类型的变量持有的是数据的引用,数据存储在数据堆中。 值类型(value type):byte,short,int,lo...
  • qiaoquan3
  • qiaoquan3
  • 2016年04月20日 17:59
  • 26723

值类型与引用类型

1. 值类型和引用类型的区别? 2. 结构和类的区别? 3. delegate是引用类型还是值类型?enum、int[]和string呢? 4. 堆和栈的区别? 5. 什么情况下会在堆(栈)上...
  • allenwdj
  • allenwdj
  • 2016年03月02日 14:39
  • 2428

.Net常见面试题整理(1)——值类型和引用类型

随笔- 39  文章- 0  评论- 105  .Net常见面试题整理(1)——值类型和引用类型 为了防止不提供原网址的转载,特在这里加上原文链接:ht...
  • Litt_J
  • Litt_J
  • 2014年12月16日 02:45
  • 753

C#值类型与引用类型间转换

值类型与引用类型间转换也称为装箱拆箱操作, 将基本类型或值类型转换成引用类型称为装箱, 将一个值类型变成了引用类型。具体代码的含义如下: 1)     int i=10:...
  • cxcalm
  • cxcalm
  • 2015年08月18日 13:11
  • 2328

值类型和引用类型,形参和实参,传值和传引用

C# 中有两种类型:引用类型和值类型。 传值,传引用——多角度论述,力求清晰、准确...
  • ma15732625261
  • ma15732625261
  • 2016年01月28日 19:57
  • 993

堆栈(值类型,引用类型)

一、堆栈的存在意义    由于不是系统和底层的,就简单的谈一谈堆栈载C#中堆栈对于值类型、引用类型的意义 1、值类型:在C#中有int、long、float、char、bool、enum、struct...
  • Franklin_hemm_2012
  • Franklin_hemm_2012
  • 2016年01月17日 17:23
  • 475
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift 中的值类型和引用类型
举报原因:
原因补充:

(最多只允许输入30个字)