在学习 Rust 编程语言 的过程中,pub 关键字是一个非常重要的概念。它控制着代码的可见性和访问权限,是构建模块化、安全且可维护程序的基础。
pub 是 Rust 中用于声明公共项(public items)的关键字。默认情况下,Rust 中的所有项(如函数、结构体、模块等)都是私有的(private),这意味着它们只能在定义它们的模块内部被访问。
当你希望某个项能被其他模块或外部 crate 使用时,就需要使用 pub 来将其公开。
下面是一个简单的例子,展示如何使用 pub 公开一个函数:
// lib.rs 或 main.rsmod my_module { // 私有函数,只能在 my_module 内部调用 fn private_function() { println!("This is private"); } // 公共函数,可以被外部调用 pub fn public_function() { println!("This is public"); private_function(); // 内部可以调用私有函数 }}fn main() { // my_module::private_function(); // ❌ 编译错误! my_module::public_function(); // ✅ 正确!} pub 可以用于多种 Rust 项:
pub fn my_func() { ... }pub struct MyStruct { ... }pub enum MyEnum { ... }pub const VALUE: i32 = 42;pub mod my_mod { ... }pub trait MyTrait { ... }注意:即使结构体本身是 pub 的,它的字段默认仍是私有的。如果希望字段也能被外部访问,需要单独为字段加上 pub:
pub struct Point { pub x: i32, pub y: i32, // z 字段是私有的 z: i32,}fn main() { let p = Point { x: 1, y: 2, z: 3 }; println!("x: {}", p.x); // ✅ 可以访问 // println!("z: {}", p.z); // ❌ 编译错误!z 是私有的} 从 Rust 2018 开始,你可以使用 pub(restricted) 语法来更精细地控制可见性范围。例如:
mod outer { pub(in crate) fn visible_in_crate() {} pub(in super) fn visible_in_parent() {} pub(crate) fn visible_everywhere_in_crate() {}} pub(crate):在整个当前 crate 中可见(最常用)pub(super):仅在父模块中可见pub(in path):在指定路径的模块中可见Rust 的设计哲学强调安全和封装。pub 关键字正是这一理念的体现:
掌握 Rust pub关键字 是理解 Rust模块系统 和 Rust可见性控制 的关键一步。通过合理使用 pub,你可以构建出既安全又灵活的程序结构。
无论你是刚入门的初学者,还是正在进阶的开发者,这份 Rust编程教程 都希望能帮助你清晰理解 pub 的作用和最佳实践。
记住:默认私有,按需公开——这是 Rust 封装哲学的核心原则。
本文由主机测评网于2025-12-04发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122764.html