如何将 Box<T> 转换为 &T?

3

如果我有一个Box<T>,但需要调用一个期望trait对象的函数,该如何处理?换句话说:

trait T { ... }

fn func(t: &T) { ... }

fn some_other_func() {
    b: Box<T>; // Provided

    // These work, but is there a better way?
    func( &*b );                // 1
    func( Borrow::borrow(&b) ); // 2
}

1 和 2 看起来都不对。我是否漏掉了什么显而易见的东西?

1个回答

6

&*foo 被称为 "reborrow",是惯用语。


好的,我想我只是因为它看起来对我这个受过C++训练的人来说太不对了而感到害怕。谢谢! - anjruu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接