我正在使用statrs板条箱进行一些统计工作。在某些地方,我从各种发行版本中采样数据,而我只想编写一次该代码。但是,我使用了几种不同的分布函数。
我的想法是这样的:
let norm = Normal::new(x,y);
let lognorm: LogNormal::new(a,b);
sample(norm);
sample(lognorm);
fn sample (d: Distribution) {
for i in 1..100 {
let a = d.sample();
}
}
但是由于特质不是接口,所以它不是那么简单。 Rust似乎要求我指定“普通”而不是“发行”。
还有其他一些问题涉及这个问题,但是在我看来,这些问题都无法回答我的问题。我知道特征不是接口,我不明白的是如何将对具有不同实现的特征的引用基本上传递给进一步处理。