gpt4 book ai didi

rust - 是否可以有一个带有泛型的结构定义,其中类型既是特征类型又具有生命周期?

转载 作者:行者123 更新时间:2023-11-29 08:36:21 25 4
gpt4 key购买 nike

编辑:题为Shepmaster修改的问题。为情况添加了更多详细信息。

我想在不同线程中访问一个遵循特征的对象,该对象整体存储在一个结构中。当我从另一种语言移植我的代码以尝试学习 Rust 时,我对这门语言还是有点新手。

最初我认为有一个类似于下面的结构,它编译得很好:

struct MyStruct<T : MyTrait> {
my_object : Arc<Mutex<T>>
}

但是,最终我需要存储对它的引用,因为它将存储在多个线程中。我知道我也需要使用生命周期来让它工作,所以我得到了以下结果:

struct MyStruct<'a, T : MyTrait> {
my_object : &' Arc<Mutex<T>>
}

我得到的错误是:

error[E0309]: the parameter type T may not live long enough

-- help: consider adding an explicit lifetime bound T: 'a...

...so that the reference type &'a std::sync::Arc<std::sync::Mutex<T>> does not outlive the data it points at

my_object : &' Arc< Mutex < T > >

该错误意味着我必须为我的泛型指定生命周期,但是,我已经有了我的类型的特征。那么最终,我如何才能指定一个泛型类型既遵循特征又具有生命周期?

最佳答案

Ultimately, how can I specify that a generic type both follow a trait and have a lifetime?

与指定多个特征的方式相同:使用 + 添加它们。 IE。 T : MyTrait + 'a

关于rust - 是否可以有一个带有泛型的结构定义,其中类型既是特征类型又具有生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53181276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com