首页 > 解决方案 > 赋值会导致元组的潜在昂贵的深拷贝吗?

问题描述

Rust 编程语言指出:

那么有哪些类型Copy呢?

[...]

  • 元组,如果它们只包含也是Copy. 例如,(i32, i32)Copy,但(i32, String)不是。

这是否意味着分配具有大量元素的元组也Copy可能导致元组的潜在昂贵的深拷贝?

在这个例子中,Rust 会制作元组及其所有内容的深层副本吗?

let tpl = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9);  // and many more entries
let tpl2 = tpl;
println!("{:?} {:?}", tpl, tpl2);

对于一种几乎在它所做的所有事情上都很快的语言来说,这似乎是违反直觉的。元组(属于 的项目Copy)是否意味着足够短以至于不会影响性能?

标签: rust

解决方案


推荐阅读