Rust语言 学习06 Packge Crate Module
  dBFTbkVLMBge 2023年11月02日 52 0

一、rust代码组织

Rust语言 学习06  Packge Crate Module_rust

Rust语言 学习06  Packge Crate Module_rust_02

Rust语言 学习06  Packge Crate Module_rust_03

Rust语言 学习06  Packge Crate Module_rust_04

Rust语言 学习06  Packge Crate Module_rust_05

Rust语言 学习06  Packge Crate Module_rust_06

新建一个lib.rs

mod front_of_house {
    mod hosting {
        fn add_to_waitlist(){}
        fn seat_at_table(){}
    }

    mod serving {
        fn take_order(){}
        fn serve_order(){}
        fn take_payment(){}
    }
}

Rust语言 学习06  Packge Crate Module_rust_07

二、路径

Rust语言 学习06  Packge Crate Module_rust_08

Rust语言 学习06  Packge Crate Module_rust_09

Rust语言 学习06  Packge Crate Module_rust_10


mod front_of_house {
    pub mod hosting {
        pub fn add_to_waitlist() {}
    }
}
pub fn eat_at_restaurant() {
    // 绝对路径调用方法
    //crate::front_of_house::hosting:add_to_waitlist();
    // 相对路径调用方法
    front_of_house::hosting::add_to_waitlist();
}

Rust语言 学习06  Packge Crate Module_rust_11

fn  serve_order(){}

mod back_of_house {
    fn fix_wrong_order() {
        cook_order();
        // 相对路径调用
        super::serve_order();
        // 绝对路径调用
        crate::serve_order();
    }
    fn cook_order(){}
}

Rust语言 学习06  Packge Crate Module_rust_12

Rust语言 学习06  Packge Crate Module_rust_13

需要把seasonal_fruit变成pub 公共的,就不会报错了

Rust语言 学习06  Packge Crate Module_rust_14

Rust语言 学习06  Packge Crate Module_rust_15

都是公共的,才有作用

三、Use关键字

Rust语言 学习06  Packge Crate Module_rust_16

Rust语言 学习06  Packge Crate Module_rust_17

改成pub后,下面才能调用mod中的pub函数

Rust语言 学习06  Packge Crate Module_rust_18

Rust语言 学习06  Packge Crate Module_rust_19

Rust语言 学习06  Packge Crate Module_rust_20

Rust语言 学习06  Packge Crate Module_rust_21

Rust语言 学习06  Packge Crate Module_rust_22

mod front_of_house {
    pub mod hosting {
        pub fn add_to_waitlist(){}

    }
}

pub use crate::front_of_house::hosting;

pub fn eat_at_restaurant() {
    hosting::add_to_waitlist();
    hosting::add_to_waitlist();
}

Rust语言 学习06  Packge Crate Module_rust_23

Rust语言 学习06  Packge Crate Module_rust_24

use rand::Rng;
use std::collections::HashMap;
//use std::collections::HashMap;
//use std::cmp::Ordering;
use std::{cmp::Ordering,io}; // 上面两行缩成一行

Rust语言 学习06  Packge Crate Module_rust_25

Rust语言 学习06  Packge Crate Module_rust_26

Rust语言 学习06  Packge Crate Module_rust_27


四、模块拆分为不同文件

Rust语言 学习06  Packge Crate Module_rust_28

Rust语言 学习06  Packge Crate Module_rust_29

Rust语言 学习06  Packge Crate Module_rust_30

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  oS1xgoxjr0QZ   2023年11月02日   65   0   0 数组Rust
  oS1xgoxjr0QZ   2023年11月02日   50   0   0 Rust
  dBFTbkVLMBge   2023年11月02日   45   0   0 Rust
  oS1xgoxjr0QZ   2023年11月02日   51   0   0 Rust
  oS1xgoxjr0QZ   2023年11月02日   34   0   0 Rust
  oS1xgoxjr0QZ   2023年11月02日   62   0   0 Rust
  oS1xgoxjr0QZ   2023年11月02日   67   0   0 Rust
  y5zqVixaDLkE   2023年11月02日   61   0   0 RustmysqlPostgreSQL
dBFTbkVLMBge