Rust dyn Any 代码片段

use std::any::Any;

fn main() {
  fn is_string(s: &dyn Any) {
    if s.is::<String>() {
      println!("It's a string!");
    } else {
      println!("Not a string!");
    }
  }

  is_string(&"hello".to_string());

  fn is_string2(s: Box<dyn Any>) {
    if s.is::<String>() {
      println!("It's a string...");
    } else {
      println!("Not a string...");
    }
  }

  let string_value = "hello".to_string();
  let new_string = String::from("world");
  is_string2(Box::new(string_value));
  is_string2(Box::new(new_string));
}
posted @ 2025-09-10 22:11  杭州皮卡丘  阅读(8)  评论(0)    收藏  举报