回答

收藏

强制 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    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则