有没有一种方法可以在解构元组的同时在同一行上取消引用
foo
和bar
,以简化以下代码?let a = "a";
let b = "b";
let c = (&a, &b);
// Can we dereference here?
let (foo, bar) = c;
let foo_loc = *foo;
let bar_loc = *bar;
println!("{}", foo_loc);
println!("{}", bar_loc);
let (foo, bar) = c.to_owned();
是否会相同或类似? - heemaylc
时,您已经在执行to_owned
。因此,为了解决他所问的问题,您仍需要进行模式匹配。 - Netwavec.to_owned()
会调用(&&str, &&str)
的ToOwned
实现,该实现由通用实现impl<T> ToOwned for T where T: Clone
覆盖。因此,c.to_owned()
将简单地返回c
的克隆,因此不会影响值的结构。 - sebpuetz