编者注:在Rust 1.0之前问过这个问题,问题中的一些断言在Rust 1.0中不一定正确.一些答案已更新,以解决这两个版本.
我有这个结构
struct Triplet {
one: i32,
two: i32,
three: i32,
}
Run Code Online (Sandbox Code Playgroud)
如果我将它传递给函数,则会隐式复制它.现在,有时我读到某些值不可复制,因此必须移动.
是否有可能使这个结构Triplet不可复制?例如,是否有可能实现一个Triplet不可复制的特性,因此可以"移动"?
我读到某个地方必须实现Clone特征来复制那些不能隐式复制的东西,但是我从来没有读过相反的东西,那就是有一些隐式可复制的东西,并使它不可复制,以便它移动.
这甚至有意义吗?
当使用HashMap的get方法时,我得到了一个Option<&T>,这次我再次遇到它Option<&String>.我想获得自有价值Option<String>.没有我写作,这可能map(|x| x.to_owned())吗?
我只是想知道是否有办法为任何实用程序特征编写一个实现该实现的毯子实现?