转:https://rustwiki.org/rust-by-example/mod/split.html

模块可以分配到文件/目录的层次结构中。让我们将可见性小节例子 的代码拆开分到多个文件中:

$ tree .
.
|– my
| |– inaccessible.rs
| |– mod.rs
| -- nested.rs
– split.rs

1、 split.rs

// 此声明将会查找名为 `my.rs` 或 `my/mod.rs` 的文件,并将该文件的内容插入到
// 此作用域名为 `my` 的模块里面。
mod my;fn function() {println!("called `function()`");
}fn main() {my::function();function();my::indirect_access();my::nested::function();
}

2、my/mod.rs

// 类似地,`mod inaccessible` 和 `mod nested` 将找到 `nested.rs` 和
// `inaccessible.rs` 文件,并在它们各自的模块中插入它们的内容。
mod inaccessible;
pub mod nested;pub fn function() {println!("called `my::function()`");
}fn private_function() {println!("called `my::private_function()`");
}pub fn indirect_access() {print!("called `my::indirect_access()`, that\n> ");private_function();
}

3、my/nested.rs

pub fn function() {println!("called `my::nested::function()`");
}#[allow(dead_code)]
fn private_function() {println!("called `my::nested::private_function()`");
}
// my/inaccessible.rs
#[allow(dead_code)]
pub fn public_function() {println!("called `my::inaccessible::public_function()`");
}

我们看到代码仍然正常运行,就和前面的一样:

$ rustc split.rs && ./split
called `my::function()`
called `function()`
called `my::indirect_access()`, that> called `my::private_function()`
called `my::nested::function()`

此外,关于文件分层,可以阅读rustprimer,里面有详细的论述。

https://rustcc.gitbooks.io/rustprimer/content/module/module.html

(转)Rust :文件分层相关推荐

  1. linux底层文件io,学习Rust 文件与 IO

    导读 Rust 语言是一种高效.可靠的通用高级语言.其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言. 本章介绍 Rust 语言的 I/O 操作. 接收命令 ...

  2. rust 文件读写操作

    文章目录 一.读取文件 二.写入文件 一.读取文件 use std::fs::File;fn main() {let f = File::open("hello.txt").unw ...

  3. 通过例子学习Rust

    1 Hello world 1.1 可执行文件 rustc main.rs //编译 ./main 运行二进制文件 1.2 注释 普通注释: // /**/ 文档注释 /// 为接下来的项生成帮助文档 ...

  4. rust安装教程linux,如何在 Linux 中安装 Rust 编程语言

    Rust 通常被称为 rust-lang.Rust 是一个由 Mozilla Research 赞助的通用的.多范式.现代的.跨平台和开源系统编程语言. 它旨在实现安全性.速度和并发性等目标. Rus ...

  5. C++、Python、Rust、Scala 构建编译器的差异性究竟有多大?

    [CSDN 编者按]编程语言之争是开发者们热议的永恒话题,在不同语言的选择和设计决定上也都观点不一.那么在面对大型项目时该如何选择具体实现呢?本文的作者借课程项目之机,比较了Rust.Haskell. ...

  6. 怎么把AI文件导入到PS里面

    今天中软云数小编就来为大家讲解一下如何把AI文件分层导入PS里?PS是位图软件,AI是矢量图软件,两者如何相互导入,并可保持分层可编辑呢?下面分享ai导入psd并分层的方法,希望对有需要的朋友有所帮助 ...

  7. 【Rust日报】2020-10-02 移动操作系统SailfishOS支持Rust了

    移动操作系统SailfishOS支持Rust了 链接:https://forum.sailfishos.org/t/release-notes-pallas-yllastunturi-3-4-0/22 ...

  8. 软件下载安装卸载及文件夹管理

    首先: 联想杀毒plus(McAfee):必须卸载 误报病毒,自动删除 就算永久关闭依然会在后台拦截文件 系统自带的的windows definder已经够用了 (?windows definder也 ...

  9. 【Rust】我该用什么软件开发 Rust | 常用支持 Rust 的编辑器推荐

    目录 一.前言 二.编辑器插件 1. VS Code 2. Sublime Text 3. IntelliJ IDEA (推荐) 4. VIM 三.以GoLand 为例安装 rust 插件演示 1. ...

  10. HDS推出HUS中端阵列 文件、块和对象统一存储

    http://storage.chinabyte.com/86/12320086.shtml http://storage.chinabyte.com/134/12324134.shtml 日立数据系 ...

最新文章

  1. 通过对比对象掩码建议的无监督语义分割
  2. 运行时常量池在哪里_Java虚拟机详解(二)------运行时内存结构
  3. 初学者用涩性胶皮好还是粘性_乒乓球胶皮的保养方法
  4. iOS iOS9下修改回HTTP模式进行网络请求
  5. resharper警告 :linq replace with single call to FirstOrDefault
  6. 二十一世纪Windows简史
  7. 万字长文丨7个经典问题,助你拿下Java面试(建议收藏)
  8. 第0章 前言(续1)
  9. php redis 菜鸟,phpRedisAdmin 安装
  10. Glib2:error: Installed (but unpackaged) files found(七)
  11. python控制步进电机驱动器_怎样用树莓派和L298N电机驱动器模块控制步进电机
  12. 【渝粤题库】国家开放大学2021春2018货币银行学题目
  13. 自学考试应该怎样答题才能更高分?
  14. 【Codecs系列】HEVC-SCC(四):SCC IBC句法
  15. Ubuntu20.04开启night夜间模式保护视力
  16. 使用adb命令修改build.prop文件
  17. 主动雷达和被动雷达的区别
  18. 插入排序超详细讲解C语言
  19. 【译】Executor, ExecutorService 和 Executors 间的不同
  20. tcp发送窗口(滑动窗口)、拥塞窗口

热门文章

  1. 自解压shell文件的制作
  2. 卷积神经网络CNN原理以及TensorFlow实现
  3. sde自动备份到文件gdb
  4. 002-JavaScript基本应用
  5. 2019白金之星 第一次初赛 第一题 Polynomial
  6. 设计模式-第二篇之简单工厂模式
  7. loj #6122. 「网络流 24 题」航空路线问题
  8. 指示灯亮着,但是右边的数字小键盘不可用
  9. python aiohttp百万并发
  10. 每日一句20191104