【问题标题】:How to deref tuple of references如何取消引用元组的引用
【发布时间】:2021-05-28 22:25:18
【问题描述】:
use std::collections::BTreeMap;

fn main() {
    let mut m = BTreeMap::new();
    m.insert(1, 1);
    
    let (a, b) = *m.iter().next().unwrap();
}

我正在尝试获取从 btreemap 返回的 (key, value) 对的取消引用版本。但是直接在返回的 (& ,&) 对上使用解引用运算符是行不通的。

有没有办法做到这一点,使 a、b 的类型只是 u64,而不是 &u64?

【问题讨论】:

  • 您总是可以使用取消引用的版本来隐藏变量,例如let (a, b) = (*a, *b);,虽然我不确定你怎么能在一个声明中做到这一点
  • 或者您可以使用 into_iter 来按值迭代。

标签: rust


【解决方案1】:

模式中变量前的&(由let使用)将取消引用它。

let (&a, &b) = m.iter().next().unwrap();

【讨论】:

    猜你喜欢
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 2014-05-15
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多