需要两次使用模块名称来引用模块中的结构[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

主要功能如下:

mod stats;

fn main() {
    let raw_data = [10, 10, 20, 1, 2, 3, 5];
    let mut v: Vec<u32> = Vec::new();
    let mean = 0;
    let median = 0;
    let mode = 0;
    for i in raw_data.iter() {
        v.push(*i);
    }
    let stat = stats::stats::Stats::new(v);
}

模块统计数据如下:

pub mod stats {
    pub struct Stats {
        data: Vec<u32>,
    }
    impl Stats {
        pub fn new(data: Vec<u32>) -> Stats {
            Stats { data }
        }
        pub fn find_mean(&self) -> f64 {
            let mut sum = 0;
            for i in &self.data {
                sum += i;
            }
            return (sum / self.data.iter().count() as u32) as f64;
        }
        pub fn find_mode(&self) -> u32 {}
        pub fn find_median(&self) -> f64 {}
    }
}

为什么我必须使用stats::stats来引用struct Stats

rust
1个回答
2
投票

在你的stats.rs文件中你创建另一个模块stats,这意味着你必须使用stats::stats,因为每个文件都创建自己的模块。

要解决您的问题,只需删除pub mod stats文件中的stats.rs即可。

有关更多信息,请参阅

© www.soinside.com 2019 - 2024. All rights reserved.