当前位置: 首页 > wzjs >正文

网站查询域名解析颍上做网站

网站查询域名解析,颍上做网站,国外 网站 设计,可以做婚礼视频的网站1. 值类型和引用类型 1.1 值的存储方式 所有变量在底层实现中,都会关联一个具体的“值”,这个值可能存储在 内存地址 或 寄存器 中。 寄存器用于优化常用变量的访问速度。只有局部、小、频繁使用的变量才更可能被分配到寄存器中。实际行为由编译器根据…
1. 值类型和引用类型
1.1 值的存储方式

所有变量在底层实现中,都会关联一个具体的“值”,这个值可能存储在 内存地址 或 寄存器 中。

  • 寄存器用于优化常用变量的访问速度。
  • 只有局部、小、频繁使用的变量才更可能被分配到寄存器中。
  • 实际行为由编译器根据上下文和优化策略决定。

对于值变量而言,这个关联的值本身就是数据的直接表示。例如,一个 Int64 类型的变量 let x = 5 ,其关联的值 5 直接存储在变量的内存空间中,而非指向其他位置。

对于引用变量而言,其关联的值是一个对对象的引用,该引用通常表现为对象在堆内存中的地址。变量本身并不包含对象的实际数据,而是通过这个引用间接访问对象的内容。

在 Cangjie 语言中,class 和 Array / ArrayList / HashMap 等 collection 类型 属于引用类型,struct 和 Int64 / String 等 基础类型 属于值类型。

1.2 let 在值类型与引用类型中的行为差异

引用类型 和 值类型 这种分类,直接影响了变量声明(varlet)与方法调用的规则。

“let 与 var,分别对应不可变和可变属性,可变性决定了变量被初始化后其值还能否改变,仓颉变量也由此分为不可变变量和可变变量两类。”

  • 值类型特性:struct 实例的变量在声明为 let 时是完全不可变的,包括其内部的字段;若需修改 struct 实例的状态,则需使用 var 声明变量,var d = Data()

  • 引用类型特性:引用类型实例的变量是引用(类似指针),let 声明仅禁止重新赋值引用本身,但允许通过引用修改对象内部状态。

let struct 与 let class 类似于 C++ 中常量指针常量(const T * const)和指针常量(T * const)的区别 —— 前者指向、指向的内容均不可变,后者指向不可变、指向的内容可变。

这也是为什么即使将 ArrayList 声明为 let,依然可以向其中添加元素,因为 let 仅阻止对该引用本身的重新赋值,而不影响通过该引用修改对象内部状态;

同样地,let it = list.iterator() 可以在遍历时通过 while (let Some(val) <- it.next()) 不断获取下一个元素,是因为迭代器对象的状态变更属于其内部行为,并不受引用本身不可变性的限制。

2. 复制和传参的机制
2.1 复制行为解析

值类型变量的赋值或传参会触发深拷贝,即完整复制变量的相关数据,原始实例与副本状态隔离;

引用类型变量的复制或传参会复制引用(而非对象本身)。

Cangjie 值类型(struct)和引用类型(class)的复制均不会触发构造函数:

  • struct 在赋值或传参时,直接复制内存数据,不会调用构造函数、重新初始化成员变量。

在这里插入图片描述

let d2= d1 的行为并不会调用 init(D: Data) 构造函数。因为 Cangjie 中结构体(struct)是值类型,赋值操作会直接复制内存中的数据,而不是通过构造函数进行初始化。
·
如果 Cangjie 在赋值时真的使用了自定义的拷贝构造函数(如 init(D: Data)),则会导致无限递归的问题:因为拷贝构造函数本身在初始化新对象时又会触发一次赋值,进而再次调用拷贝构造函数,形成循环。
·
因此,这种“反向验证”说明 Cangjie 在底层对值类型的赋值操作采用的是直接内存复制的方式,而不是依赖用户定义的构造函数。

  • class 的实例通过引用来共享数据,赋值或传参仅复制引用地址,无需构造新对象。
2.2 值类型中嵌套引用类型

当值类型(如 struct)中包含引用类型(如 ArrayList / class )时,复制值类型会导致以下行为:

  • 值类型字段:直接复制数据。修改副本的值类型字段,不影响原始实例。
  • 引用类型字段:复制引用地址。副本的引用类型字段与原始实例共享同一对象。

r1.x = 1 :因为 x 是值类型,赋值后修改的是 r2.x ,不影响 r1.x 。
r1.list: 1 2 3 :因为 list 是引用类型,r1.list 和 r2.list 指向同一个 ArrayList,所以 r2 对 list 的修改也影响到 r1 。


文章转载自:

http://HbdWiJNA.rckmz.cn
http://KdRrmIL1.rckmz.cn
http://7Xw34qTj.rckmz.cn
http://clgKEHh8.rckmz.cn
http://Lxd3HpJd.rckmz.cn
http://Bdk1oA7z.rckmz.cn
http://kxI3UoDx.rckmz.cn
http://bS6Ako9K.rckmz.cn
http://oO54tRyX.rckmz.cn
http://gP18YEi5.rckmz.cn
http://yKrfFWoJ.rckmz.cn
http://iOxx9Pbk.rckmz.cn
http://Bzx04jsJ.rckmz.cn
http://xzHX68kj.rckmz.cn
http://y4vZkTS9.rckmz.cn
http://Tp9YBYtD.rckmz.cn
http://wJAj9Q0d.rckmz.cn
http://A5wl3gTZ.rckmz.cn
http://ueflnh4C.rckmz.cn
http://YBxx0SzQ.rckmz.cn
http://29iRxNcd.rckmz.cn
http://aQ7KrbCc.rckmz.cn
http://OzBh1AHL.rckmz.cn
http://ro0ygHUb.rckmz.cn
http://vcJzZV2Z.rckmz.cn
http://oWVewJxH.rckmz.cn
http://8ZVDRw9W.rckmz.cn
http://JY4EE0kl.rckmz.cn
http://BaZOk361.rckmz.cn
http://xilAppFH.rckmz.cn
http://www.dtcms.com/wzjs/685283.html

相关文章:

  • 企业网站模板文件管理美术设计
  • 宁波网络营销策划南宁seo优势
  • 国外网站国内做二维码设计网站界面
  • 哔哩网站开发需求分析模板电脑上做网站的软件
  • 技术网站建设怎样创建公众号
  • 专门做酒的网站有哪些网站网页翻页设计
  • 如何把国外的网站在国内做镜像莱芜杂谈 莱芜话题
  • 模板建站符合哪些工作需求?网站优化公司电话
  • 优化型网站建设的基本要求自己做商务网站有什么利弊
  • 网站建设销售中遇到的问题阿里云网站用什么做的
  • 上海微网站公司网站推广过程叙述
  • 黑龙江省和城乡建设厅网站wordpress怎么添加广告代码
  • 厦门建设工程招标中心的网站品牌网站建设内容框架
  • 高端摄影网站模板下载微网站 淘宝客
  • 厦门SEO_厦门网站建设昆明好seo怎么做
  • 云南省建设厅标准员网站在线教育网站有哪些
  • Wordpress在中国建站郴州最大的网络科技公司
  • 网站注意事项分销系统搭建
  • 女装网站建设规划书wordpress 交友主题
  • 网站设计上市公司成都中小企业网站建设
  • 西安网站制作资源网站经营与建设
  • 汝州市文明建设门户网站网站备案年审
  • 飞虎队网站建设广州网站建设系统
  • 贵阳网站设计阳光创信好吗网红营销平台
  • 网站建设情况自查报告百度新闻发布平台
  • 网站后台费用wordpress 文本小工具
  • 广州做网站专业公司湖北省建设工程质量安全监督网站
  • 网站建设实验报告手写asp网站搭建教程
  • 网站开发合同封面陈铭生
  • 株洲网站开发公司视频做动图的网站