内容简介:模块是 Rust 中的 私有性边界,如果你希望函数或结构体是私有的,将其放入模块。私有性规则有如下:使用使用
模块是 Rust 中的 私有性边界,如果你希望函数或结构体是私有的,将其放入模块。私有性规则有如下:
pub
使用 pub
关键字使项变为公有,一个示例如下:
mod sound { pub mod instrument { pub fn clarinet() { // 函数体 } } } fn main() { // 绝对路径 crate::sound::instrument::clarinet(); // 相对路径 sound::instrument::clarinet(); }
使用 super
开头来构建相对路径,类似文件系统中以 ..
开头的作用,一个示例如下:
mod instrument { fn clarinet() { super::breathe_in(); } } fn breathe_in() { // 函数体 }
对结构和枚举使用 pub
的一个示例如下:
mod plant { pub struct Vegetable { pub name: String, id: i32, } impl Vegetable { pub fn new(name: &str) -> Vegetable { Vegetable { name: String::from(name), id: 1, } } } } fn main() { let mut v = plant::Vegetable::new("squash"); v.name = String::from("butternut squash"); println!("{} are delicious", v.name); // 如果将如下行取消注释代码将无法编译: // println!("The ID is {}", v.id); }
使用 use
关键字将名称引入作用域的一个示例如下,优势是更加简洁、避免重复:
mod sound { pub mod instrument { pub fn clarinet() { // 函数体 } } } use crate::sound::instrument; // 绝对路径 // use self::sound::instrument; // 相对路径 fn main() { instrument::clarinet(); instrument::clarinet(); instrument::clarinet(); }
通过 as
关键字重命名引入作用域的类型的一个示例如下:
use std::fmt::Result; use std::io::Result as IoResult; fn function1() -> Result {} fn function2() -> IoResult<()> {}
通过 pub use
重导出名称的一个示例如下:
mod sound { pub mod instrument { pub fn clarinet() { // 函数体 } } } mod performance_group { pub use crate::sound::instrument; pub fn clarinet_trio() { instrument::clarinet(); instrument::clarinet(); instrument::clarinet(); } } fn main() { performance_group::clarinet_trio(); performance_group::instrument::clarinet(); }
可以利用嵌套路径来消除重复的 use
书写:
use std::cmp::Ordering; use std::io; // to use std::{cmp::Ordering, io};
也可以通过 glob
运算符将所有的公有定义引入作用域,例如如下示例引入了 std::collections
中定义的所有公有项:
use std::collections::*;
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Nginx源码阅读笔记-事件处理模块
- 《Haskell趣学指南》笔记之模块
- python 3.x 学习笔记7 ( 模块 )
- Java并发编程实战笔记3:基础构建模块
- 云办公系统 skyeye v3.5.1 发布,工作流模块以及笔记模块更新
- python 3.x 学习笔记8 (os模块及xml修改)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Clean Architecture
Robert C. Martin / Prentice Hall / 2017-9-20 / USD 34.99
Practical Software Architecture Solutions from the Legendary Robert C. Martin (“Uncle Bob”) By applying universal rules of software architecture, you can dramatically improve developer producti......一起来看看 《Clean Architecture》 这本书的介绍吧!
HTML 编码/解码
HTML 编码/解码
正则表达式在线测试
正则表达式在线测试