【发布时间】:2020-10-17 22:31:43
【问题描述】:
Rust 为什么不能完全推断其变量的所有权?为什么需要注释?
【问题讨论】:
-
什么是“所有权注释”?你的意思是
self和&self是如何编写方法的不同方式?还是你的意思是生命周期注释? -
@trentcl 好的链接,谢谢!我想基本原理是相似的,完全推断原则上是可能的,但可能不适合使用目的。
Rust 为什么不能完全推断其变量的所有权?为什么需要注释?
【问题讨论】:
self 和&self 是如何编写方法的不同方式?还是你的意思是生命周期注释?
如果这是可能的,我相信这将是一个糟糕的用户体验,因为:
但是,如果您在缺乏多态性方面遇到困难,通常可以使用所有权类型对方法进行参数化,这可能被认为是推理的某种明确的替代方案,例如:
fn print_str(s: impl AsRef<str>) {
println!("{}", s.as_ref());
}
fn main() {
print_str("borrowed");
print_str("owned".to_owned());
}
【讨论】: