Rust
文章平均质量分 71
Azur冰弦
大蒟蒻
展开
-
【Rust笔记】所有权(2)引用与借用
现在,我们来看看这个程序:会发现它无法编译,给出的错误提示和 [所有者 1 所有者、移动、克隆](./所有者 1 所有者、移动、克隆.md) 中 **例子2 **的编译失败提示一样,也是 。其实,在将 作为参数传给 的过程中也发生了一次 移动,而且没有再移动回来。这不难理解,因为函数的参数本质上其实也是个 变量 嘛。那么怎么办呢?欸嘿,我再给它移回来不就好了!进行如下修改:成功运行。然而,这么写多少有点 呆,有没有更好的办法?答案是有,就是使用 引用。引用 其实像是一个指针,因为其实它是个地址,原创 2022-06-28 20:17:05 · 410 阅读 · 1 评论 -
【Rust笔记】所有权(1)所有者、移动、克隆
在程序运行时可供使用的内存包含 栈区 和 堆区,对应着两种不同的数据结构 栈 和 堆,他们的特性不同,存储的数据也不同。栈区 中存储的数据必须是 占用已知且固定的大小 的,而 堆区 中存储的数据是 编译时大小未知或可能变化 的。占用已知且固定的大小 数据可以直接以 进栈 的方式存入内存,但是对于 编译时大小未知或可能变化 的数据,则需要先向 内存分配器 申请一定大小的空间,随后在 堆区 找到一块空位,标记为已使用并返回该位置的 指针 以供使用,这个过程称为 在堆上分配内存。在 Rust 中,有一个 所有者原创 2022-06-28 19:29:51 · 332 阅读 · 0 评论