gpt4 book ai didi

rust - 需要拥有 self 所有权的典型用例是什么?

转载 作者:行者123 更新时间:2023-11-29 07:54:59 30 4
gpt4 key购买 nike

在 Rust 书中 Method Syntax chapter , 有一个获取 self 所有权的例子:

struct Circle {
x: f64,
y: f64,
radius: f64,
}

impl Circle {
fn reference(&self) {
println!("taking self by reference!");
}

fn mutable_reference(&mut self) {
println!("taking self by mutable reference!");
}

fn takes_ownership(self) {
println!("taking ownership of self!");
}
}

需要拥有 self 所有权的典型用例有哪些?是否仅当 self 是堆栈上的值时(它将被复制到哪里)?

最佳答案

当对象被方法无效时,取得所有权是有意义的。想象一个方法 Iterator.drop(u32),实现为返回一个新对象而不是修改现有对象。在原始迭代器上调用其他方法会导致不一致。

此类无效的其他示例是不同种类的包装器。

关于rust - 需要拥有 self 所有权的典型用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32570446/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com