0
点赞
收藏
分享

微信扫一扫

WPF xmal中的Color的常用写法

infgrad 2023-11-17 阅读 43

前言

道尊:没有办法,你的法力已经消失,我的法力所剩无几,除非咱们重新修行,在这个世界里取得更多法力之后,或许有办法下降。——《拔魔》


         \;\\\;\\\;

目录

跨文件mod

//my_mod.rs
pub mod mod_1{
    //默认私有
    fn say1(){
        println!("[say1]private function");
    }
    pub fn say2(){
        println!("[say2]public function");

        //调用子模块的函数
        mod_2::dog();
    }
    pub fn say3(){
        println!("[say3]public function");
        say2();

        //调用子模块的函数
        mod_2::run();
    }

    //模块的嵌套
    pub mod mod_2{
        fn say1(){
            println!("[mod_2][say1]private function");//不知道会不会重写
        }
        pub fn say2(){
            println!("[mod_2][say2]public function");//不知道会不会重写
        } 

        //此函数只在当前mod中可见
        pub(self) fn interior_f(){
            println!("[mod_2][interior_f]only used in this mod");
        }
        //只在my_mod::mod_1中可见
        pub(in crate::my_mod::mod_1) fn dog(){
            println!("[mod_2][dog]do it!");
            interior_f();
        }
        //此函数只在上一层mod中可见
        pub(super) fn run(){
            println!("[mod_2][run]run!");
        }

        
        //再嵌套一层看看效果
        pub mod mod_3{
            pub fn say1(){
                println!("[mod_3][say1]marvelous!");
            }
            pub fn say2(){
                println!("[mod_3]say2");
                say1(); //本mod_3的say1
                //say2(); //本mod_3的say2,递归报错
                //interior_f(); //只在mod_2中,不能拿到下面来
                //dog(); //不能拿到下面来
                //run(); //只在mod_1中,不能拿到下面来
            }
        }
    }
}
//function.rs
mod my_mod;
pub use my_mod::*;

fn main() {
    //mod_1::say1();   //私有函数调用不了
    mod_1::say2();
    mod_1::say3();

    //mod_1::mod_2::say1();  //私有函数调用不了
    mod_1::mod_2::say2();
    //mod_1::mod_2::interior_f();  //私有函数调用不了
    //mod_1::mod_2::some(); //私有函数调用不了
    //mod_1::mod_2::run(); //私有函数调用不了

    mod_1::mod_2::mod_3::say1();
    mod_1::mod_2::mod_3::say2();
}

在这里插入图片描述

         \;\\\;\\\;

多文件mod

文件夹的名字就是mod的名字,里面必须有一个mod.rs,和python里的__init__.py一样。文件夹外需要一个mod.rs,来声明这个文件夹是模块。

在这里插入图片描述

//student.rs
pub fn run_2(){
    println!("i am a student");
}
//teacher.rs
pub fn run_3(){
    println!("i am a teacher");
}
//staff.rs
pub fn run_1(){
    println!("i am a staff");
}

interface文件夹中的mod

//mod.rs
pub mod staff;
pub mod student;
pub mod teacher;

和interface文件夹并行的mod

//mod.rs
pub mod interface;

      \;\\\;
调用模块

//run.rs
mod interface;
use interface::staff;
use interface::student;
use interface::teacher;

fn main(){
    staff::run_1();
    student::run_2();
    teacher::run_3();
}

在这里插入图片描述

举报

相关推荐

0 条评论