当前位置:首页 >> 半导体技术突破 >> 【Rust】快速教程——模块mod与跨文件,三星s5820怎么样(rust modbus)

【Rust】快速教程——模块mod与跨文件,三星s5820怎么样(rust modbus)

cpugpu芯片开发光刻机 半导体技术突破 1
文件名:【Rust】快速教程——模块mod与跨文件,三星s5820怎么样 【Rust】快速教程——模块mod与跨文件 前言

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


\;\\\;\\\;

目录 前言跨文件mod多文件mod

跨文件mod //my_mod.rspub 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.rsmod 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_3中调用mod_1和mod_2

...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,递归报错//子模块调用父模块use crate::mod_1::mod_2;mod_2::interior_f(); mod_2::dog(); use crate::mod_1;mod_1::say3(); //只在mod_1中,不能拿到下面来}}...

\;\\\;\\\;

多文件mod

文件夹的名字就是mod的名字,里面必须有一个mod.rs,和python里的__init__.py一样。

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

interface文件夹中的mod

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

\;\\\; 调用模块

//run.rsmod interface;use interface::staff;use interface::student;use interface::teacher;fn main(){staff::run_1();student::run_2();teacher::run_3();}

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接