【问题标题】:How to check if 'Box<Any>' contains 'Unit' in a short expression?如何检查 'Box<Any>' 是否在短表达式中包含 'Unit'?
【发布时间】:2017-01-04 06:18:41
【问题描述】:

检查Box&lt;Any&gt; 的便捷方法是()(由Box::new(()) 创建)。

目前我有这个,但我怀疑可能有更紧凑的方式来表达这个,因为分配似乎是多余的。

pub fn some_function(value: Box<Any>) {
    if let Some(&()) = value.downcast_ref() {
        // pass
    } else {
        panic!();
    }
}

【问题讨论】:

    标签: casting rust box any


    【解决方案1】:

    这可以使用Any::is方法完成,例如:

    assert!(value.is::<()>());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 2021-08-27
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多