使用另一个模块

时间:2019-02-10 13:32:22

标签: module rust

关于Rust模块,我有些不了解。

main.rs中使用单个文件

有了一个main和另一个文件,我就知道了如何使用它们。这很简单。

main.rs

mod other;

fn main() {
    let whatever = other::Whatever {
        foo: 32,
    };
    println!("Whatever is {}", whatever.foo);
}

other.rs

pub struct Whatever {
    pub foo: u32,
}

这很好。

main.rs以外的其他地方使用它会如何?

当在另一个模块中使用另一个模块时,我没有得到。

这对我来说听起来不错,但是没有用。

main.rs

pub mod other;
pub mod alter;

fn main() {
    let whatever = other::Whatever {
        foo: 32,
    };
    alter::say(whatever);
}

other.rs

pub struct Whatever {
    pub foo: u32,
}

alter.rs

mod other;

pub fn say(whatever: other::Whatever) {
    println!("Whatever is {}", whatever.foo);
}

编译失败:

error[E0583]: file not found for module `other`
 --> src/alter.rs:1:5
  |
1 | mod other;
  |     ^^^^^
  |

如何使用other中的alter

我已经看过How to use one module from another module in a Rust cargo project?,但据我了解,它指的是模块及其子模块。

在这里,other不是alter的子模块(例如,您可以将other作为应用程序范围的共享配置)。

0 个答案:

没有答案