Skip to content
เข้าสู่ระบบ

Any - ทุกชนิดข้อมูล

std::any สำหรับทำงานกับ types แบบ dynamic ที่ runtime!

Any trait ให้ความสามารถ:

  • เก็บ type ใดๆ ก็ได้ใน Box<dyn Any>
  • ตรวจสอบ type ที่ runtime
  • Downcast กลับเป็น type จริง
use std::any::Any;
fn main() {
// Box<dyn Any> เก็บ type ใดก็ได้
let values: Vec<Box<dyn Any>> = vec![
Box::new(42_i32),
Box::new("hello"),
Box::new(vec![1, 2, 3]),
];
for value in &values {
if let Some(n) = value.downcast_ref::<i32>() {
println!("i32: {}", n);
} else if let Some(s) = value.downcast_ref::<&str>() {
println!("str: {}", s);
}
}
}

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด