1、内存空间分为堆空间和栈空间

2、堆->引用类型(对象、函数、闭包)  栈->值类型(结构体、枚举、元组)

3、值类型赋值->深拷贝  引用类型赋值->浅拷贝

let a = 1
let c = a
// 值类型赋值会生成一个全新的c
// 引用类型赋值则是指向之前的对象的内存地址

4、结构体与类的区别

// 结构体
struct personT{
var age = 10
var name = "小明"
} var pt = personT()
var pt1 = pt
pt1.age = 20
print(pt.age) //10 // 类
class personC{
var age = 10
var name = "小明"
}
let pc = personC()
let pc1 = pc
pc1.age = 30
print(pc.age)//30
/* 分析
定义两个模型,一个是结构体,一个是类
结构体是存在于栈中的值类型,赋值相当于深拷贝即拷贝一个全新的模型
类是存在于堆中的引用类型,赋值相当于浅拷贝之前模型的内存地址<所以定义模型时可以用let 定义 定义pc其实是personC() 的内存地址 - 后续修改也是拿到内存地主对应的模型进行修改>
swift建议都使用struct, swift对结构体已经进行了很大的优化
*/

最新文章

  1. ERDAS 2014安装破解及汉化图文教程
  2. Cookie的应用
  3. 实例讲解 SQL 注入攻击
  4. Win环境下的文件读写
  5. 30天C#基础巩固------读写流(StreamWrite/StreamReader)
  6. Hadoop笔记系列 一 用Hadoop进行分布式数据处理(1)
  7. angular.js input
  8. commonJS — 全局操作(for Window)
  9. 实战微信JS SDK开发:贺卡制作与播放(1)
  10. zabbix邮件报警
  11. Android 实现书籍翻页效果----升级篇
  12. tomcat7.0 的配置
  13. 02将代码开源到github(不会使用github的来看看吧)
  14. 老司机实战Windows Server Docker:5 Windows Server Dockerfile葵花宝典
  15. Spring Aop 应用实例与设计浅析
  16. Java分布式应用技术架构
  17. SQL Server 查询性能优化——创建索引原则(一)(转载)
  18. hdu 5392
  19. 委托初级篇——lambda表达式的推导
  20. node.js 远程调试debug产线环境代码

热门文章

  1. openframeworks 设置不显示控制台窗口
  2. [WSL-1-Ubuntu]使用oh-my-zsh美化你的WSL(附脚本)
  3. 记录multipartFile表单类型转化为file
  4. moduleNotFoundError:No module named &#39;exceptions&#39;
  5. DPU02是一个高度集成的USB转UART的桥接控制器
  6. IDEA报错Error running ‘Application‘: Command line is too long解决方案
  7. [转]cfs 调度
  8. vue-pc项目放到电视tv上适配
  9. python缩小放大浏览器
  10. centos7.2下配置dhcp v4或v6服务