【发布时间】:2019-08-29 18:42:55
【问题描述】:
我正在检查我的代码中的 Clippy 发现,发现 the pedantic rule needless_pass_by_value 可能是误报。
上面写着:
警告:此参数是按值传递的,但不会在函数体中使用
帮助:考虑改为参考:
&Arc<Mutex<MyStruct>>
由于克隆Arc 只是引用计数,移动Arc 应该不是坏主意。发送参考而不是 Arc 的值真的会在质量和性能方面产生任何影响吗?
#![warn(clippy::pedantic)]
use std::sync::{Arc, Mutex};
fn main() {
let my_struct = MyStruct { value: 3 };
let arc = Arc::new(Mutex::new(my_struct));
arc_taker(arc.clone());
}
fn arc_taker(prm: Arc<Mutex<MyStruct>>) {
prm.lock().unwrap().do_something();
}
struct MyStruct {
value: i32,
}
impl MyStruct {
fn do_something(&self) {
println!("self.value: {}", self.value);
}
}
【问题讨论】:
标签: rust clean-architecture rust-clippy