rust中如何定义一个包含多种类型的数组?
EXCEL里有一列数据, 每个单元格称为 Cell, 这么多Cell构成了一个列 : Column,

每个单元格的数据各种各样,数字, 字符串, 小数等.

如何用rust定义这个结构? 刚开始学, 尝试写始终写不出,

由于Column要包含多个Cell, 但是cell里的数字又不一样, 所以我对Cell用了Box::new()包了一层,

但是依然还是没法写, 感觉好麻烦,谁能帮我一下, 我的代码(很粗糙)

新手

#[derive(Debug)]  
struct Cell<T>(Box<dyn T>);

#[derive(Debug)]  
struct Series<T, const N:?sized>{  
title: String,  
data: [Cell(dyn T);N]  
}  
fn main(){  
let col = Series{  
title:String::from("A_col"),  
data: [Cell(Box::(1)), Cell(Box::new(2.0)),
Cell(Box::new(String::from("test")))]  
};  
println!("{:?}", col);  
}
用variant表达Cell即可，在Rust里面有Enum：enum Cell { s(String), i(i64), f(f64) } type Col= Vec; 然后提供Adhoc多态构造函数，从不同类型的值构造成统一的Cell类型：trait ColumnFactory { fnbuild(self) -> Cell; } impl ColumnFactory for &str; { fn build(self) -> Cell {return Cell::s(self.to_string()); } } impl ColumnFactory for i64 { fnbuild(self) -> Cell { return Cell::i(self); } } impl ColumnFactory for f64 {fn build(self) -> Cell { return Cell::f(self); } } 最后提供一个cols!构造宏：macro_rules!cols { () => ( vec![] ); ($($x:expr),*) => (vec![$(ColumnFactory::build($x),)*] ); } 测试用例：let col: Col = cols!["helloworld", 2, 3.4]; 至于C++，就简单多了：using Cell = std::variant; using Collumn =std::vector; Collumn col {2, 3, 4.5, "hello world"};