rust语言pub关键字语法
在rust中,pub是一个关键字,用于指定一个项的可见性。它可以被用来控制模块(module)中的函数、结构体、枚举、常量、trait等的可见性。
如果一个项被标记为pub,则可以被外部的模块访问和使用。如果一个项没有被标记为pub,则它只能在当前模块内部访问。
// 模块定义 mod foo { // 函数定义,没有标记 pub fn private_function() { println!("This is a private function."); } // 函数定义,标记 pub pub fn public_function() { println!("This is a public function."); } // 结构体定义,标记 pub pub struct PublicStruct { pub field1: i32, field2: i32, } // 枚举定义,标记 pub pub enum PublicEnum { Option1, Option2, } } // 在另一个模块中使用 foo 模块中的公共函数和结构体 fn main() { foo::public_function(); // 可以调用公共函数 let my_struct = foo::PublicStruct { field1: 42, field2: 13 }; // 可以创建公共结构体的实例 // 编译错误:private_function 是私有函数,不能被访问 // foo::private_function(); }
Rust中的Some
1、首先要知道什么是Option和Result
来源:
许多语言使用null/nil/undefined类型来代表空的输出和处理异常错误。Rust跳过了,特别是防止空指针异常之类的问题,由于异常等原因导致敏感数据泄漏等等。相反,Rust提供了两个特殊的类枚举:Option和Result就是来处理以上的问题
内容:
- 可选的值要么是Some要么是没有值/None
Result要么用成功/Ok要么是失败/Err
// An output can have either Some value or no value/ None. enum Option<T> { // T is a generic and it can contain any type of value. Some(T), None, } // A result can represent either success/ Ok or failure/ Err. enum Result<T, E> { // T and E are generics. T can contain any type of value, E can be any error. Ok(T), Err(E), }
并且不需要单独引入它们
Option的基础用法:
在写一个函数或者数据类型的时候:
- 如果一个函数的参数是可选的
- 如果函数是非空的并且输出的返回可能不是空值
- 如果一个值,活着是一个属性的数据类型可能是空
2、我们不得不使用Option作为它们的数据类型
例如,一个函数的输出可能是&str类型或者是输出是空,函数的返回类型可以被设置为 Option<&str>
fn get_an_optional_value() -> Option<&str> { //if the optional value is not empty return Some("Some value"); //else None }
struct Name { first_name: String, middle_name: Option<String>, // middle_name can be empty last_name: String, }
以上就是rust语言基础pub关键字及Some语法示例的详细内容,更多关于rust语言pub Some语法的资料请关注好代码网其它相关文章!