首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么才能让铁锈的作业超负荷?

我怎么才能让铁锈的作业超负荷?
EN

Stack Overflow用户
提问于 2016-05-22 17:15:16
回答 1查看 3.5K关注 0票数 13

std::ops中有很多操作,但是没有简单的赋值。

我来自一个C++背景,这里有拷贝构造函数和赋值操作符重载,它们为您完成工作。我需要这样的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-13 12:51:00

您不能重载分配。将变量从一个位置移动到另一个位置是Rust所有权语义的一个核心组件,并且不会被夸大。

另一个答案建议您自定义实现Copy特性。这是没有意义的,因为https://doc.rust-lang.org/std/marker/trait.Copy.html

代码语言:javascript
复制
pub trait Copy: Clone { }

您可以为类型实现Clone,但是要使用clone,必须显式地调用它:

代码语言:javascript
复制
let foo = bar.clone();

实际的分配仍然只是将位从右边复制到左边,唯一的区别是您不放弃对bar的所有权。

--如果您的类型可以通过简单地复制位来复制,那么实现Copy是合适的。如果可以通过执行某种函数来复制,那么实现Clone是合适的。我不知道在任何给定的类型赋值时隐式执行代码的方法(我认为这是一个,好事,)。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37377250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档