强制 Arc<Mutex<Option<Box<MyStruct>>&
技术问答
265 人阅读
|
0 人回复
|
2023-09-12
|
我试着在里面储存一个 dyn 特征Arc>>>,但是由于某种原因它不起作用
& g: z0 W5 q( v6 W( ~' b
4 R; k2 s8 a% K6 {6 A( M- use std::sync::{Arc,Mutex};trait A{}struct B{}impl A for B{}struct H{ c: Arc>>}fn main() let c = Arc::new(Mutex::new(Some(Box::new(B())); H{ c: c }code]错误:[code]error[E0308]: mismatched types --> src/main.rs:17:12 |17 | c: c | ^ expected trait object `dyn A`,found struct `B` | = note: expected struct `Arc>>` found struct `Arc>>`
6 M3 Z9 l9 X% v$ W5 d# m, Z H 它似乎不能 a 存储dyn为 a Box[B],这很奇怪,因为它有效:
9 b2 |! z$ b* d4 {[code]fn main() let c: Arc>> = Arc::new(Mutex::new(Some(Box::new(B()))code]有什么区别?
: M0 P- C3 |: Q! S4 Y
$ d& _" U- J- R9 _1 Z- m 解决方案: |
|
|
|
|
|