如下代码所示:
use std::sync::{Arc, Mutex};
/* ITrait 接口 */
pub trait ITrait: Sync + Send {
fn abc(&self);
}
/* 具体对象 A */
pub struct A {
hello: String,
}
impl ITrait for A {
fn abc(&self) {
println!("abc!");
}
}
/* A 的特有方法 */
impl A {
pub fn test(&self) {
println!("{}", self.hello);
}
}
fn main() {
let x: Arc<Mutex<dyn ITrait>> = Arc::new(Mutex::new(A {
hello: "Hello World!".to_string(),
}));
/*
* 这里我想把 trait x,转换为 具体对象 Arc<Mutex<A>>,
* 并调用 A 的test 方法,应该怎么做? 非常感谢!
*/
x.test();
}
1
共 4 条评论, 1 页
评论区
写评论如果能转成 Arc<Mutex> 就更完美了
非常感谢!