我只是想知道在将参数移动到异步块之前是否有更好、更惯用的克隆参数的方法?
例如在下面的代码中:
use tokio::sync::mpsc;
#[tokio::main]
async fn main() {
let (tx, mut rx) = mpsc::channel(32);
let tx2 = tx.clone();
tokio::spawn(async move {
tx.send("sending from first handle").await;
});
tokio::spawn(async move {
tx2.send("sending from second handle").await;
});
while let Some(message) = rx.recv().await {
println!("GOT = {}", message);
}
}
在这种情况下,它只是 tx2,但如果有多个具有多个参数的 spawn,则克隆开始变得过多。
有时我猜想可以使用 for 循环/迭代器来避免重复,但想知道人们是否使用其他模式,也许在结构中捕获多个参数?
谢谢