赞
踩
Rust是一门注重安全性和性能的系统编程语言,其模块系统提供了一种有力的组织代码的方式。在本文中,我们将介绍Rust中的模块路径(Path)和pub
关键字的用法。
首先,让我们看一下一个简单的Rust模块示例:
mod front_of_house { pub mod hosting { pub fn add_to_waitlist() {} fn seat_at_table() {} } mod serving { fn take_order() {} fn serve_order() {} fn take_payment() {} } } fn serve_order() {} mod back_of_house { // ... }
这个模块包含两个主要部分:front_of_house
和back_of_house
。front_of_house
中有一个hosting
模块,其中包含一个公共函数add_to_waitlist
和一个私有函数seat_at_table
。
pub
关键字在Rust中用于控制访问权限。在上述示例中,我们可以看到pub
关键字被用于标记hosting
模块和其中的add_to_waitlist
函数,使它们对外部可见。
在back_of_house
模块中,pub
关键字被用于标记Breakfast
结构体和Appetizer
枚举。这意味着它们可以被外部代码访问,而不仅仅是在模块内部。
pub struct Breakfast {
pub toast: String,
seasonal_fruit: String,
}
pub enum Appetizer {
Soup,
Salad,
}
在Rust中,结构体的字段默认是私有的,但通过在字段前使用pub
关键字,我们可以将其标记为公共的。
为了在Rust的模块中找到某个条目,我们需要使用路径。路径有两种形式:绝对路径和相对路径。
crate
。self
,super
或当前模块的标识符路径。在eat_at_restaurant
函数中,我们演示了如何使用路径调用不同模块中的函数:
pub fn eat_at_restaurant() {
crate::front_of_house::hosting::add_to_waitlist();
front_of_house::hosting::add_to_waitlist();
let mut meal = back_of_house::Breakfast::summer("Rye");
meal.toast = String::from("Wheat");
println!("I'd like {} toast please", meal.toast);
}
在这个函数中,我们使用了绝对路径和相对路径来调用add_to_waitlist
函数和Breakfast
结构体的summer
关联函数。
Rust的模块系统通过pub
关键字和路径提供了灵活而强大的代码组织工具。pub
关键字用于控制访问权限,而路径则指导编译器找到需要的模块和条目。这种结构有助于提高代码的可维护性和可读性,同时保持了Rust的安全性和性能。希望本文对你理解Rust中的模块路径和pub
关键字有所帮助!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。