rust - 为什么在不使用引用的情况下获得向量元素的所有权后仍然可以访问它?
问题描述
fn main() {
let number_list = vec![1, 2, 3, 4, 5];
let n = number_list[0];
let r = &number_list[0];
println!("{} : {} : {} : {}", n, r, number_list[0], &number_list[0]);
}
输出是:
1 : 1 : 1 : 1
另一个问题是除了参考之外,带有参考和非参考的矢量索引有什么区别?
解决方案
你有一个整数向量(i32
具体来说),并i32
实现了Copy
特征。
索引语法返回一个取消引用的值。由于索引类型实现Copy
,编译器隐式复制它。
除了参考之外,带有参考和非参考的矢量索引有什么区别
如果没有&
,则复制该值(但仅因为它实现了Copy
)。使用&
,您可以引用向量内的值。
推荐阅读
- php - 如何在与其中一个文本字段关联的表单中包含要提交的 ID?
- android - 恢复损坏的 SD 卡
- soap - 不能在 OSX/.NET Core 2.1 上使用 WsdlService 类型提供程序吗?
- excel - 当我尝试访问 Access DB 时 Excel 崩溃
- image - 从顶点颜色创建图像纹理的算法
- c# - VSTS 未在 Release 中构建 Test.dll
- ubuntu - 如何知道 shell size 命令的单位?
- widget - 通过 Syncfusion Dashboard Designer 平台自定义小部件
- php - 419 auth 错误尝试使用 Laravel Echo、Vue 和 Pusher 设置事件
- ruby-on-rails - Rails has_many 表单可选地创建多条记录