rust語言基礎(chǔ)pub關(guān)鍵字及Some語法示例
rust語言pub關(guān)鍵字語法
在rust中,pub是一個關(guān)鍵字,用于指定一個項的可見性。它可以被用來控制模塊(module)中的函數(shù)、結(jié)構(gòu)體、枚舉、常量、trait等的可見性。
如果一個項被標記為pub,則可以被外部的模塊訪問和使用。如果一個項沒有被標記為pub,則它只能在當前模塊內(nèi)部訪問。
// 模塊定義 mod foo { // 函數(shù)定義,沒有標記 pub fn private_function() { println!("This is a private function."); } // 函數(shù)定義,標記 pub pub fn public_function() { println!("This is a public function."); } // 結(jié)構(gòu)體定義,標記 pub pub struct PublicStruct { pub field1: i32, field2: i32, } // 枚舉定義,標記 pub pub enum PublicEnum { Option1, Option2, } } // 在另一個模塊中使用 foo 模塊中的公共函數(shù)和結(jié)構(gòu)體 fn main() { foo::public_function(); // 可以調(diào)用公共函數(shù) let my_struct = foo::PublicStruct { field1: 42, field2: 13 }; // 可以創(chuàng)建公共結(jié)構(gòu)體的實例 // 編譯錯誤:private_function 是私有函數(shù),不能被訪問 // foo::private_function(); }
Rust中的Some
1、首先要知道什么是Option和Result
來源:
許多語言使用null/nil/undefined類型來代表空的輸出和處理異常錯誤。Rust跳過了,特別是防止空指針異常之類的問題,由于異常等原因?qū)е旅舾袛?shù)據(jù)泄漏等等。相反,Rust提供了兩個特殊的類枚舉:Option和Result就是來處理以上的問題
內(nèi)容:
- 可選的值要么是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的基礎(chǔ)用法:
在寫一個函數(shù)或者數(shù)據(jù)類型的時候:
- 如果一個函數(shù)的參數(shù)是可選的
- 如果函數(shù)是非空的并且輸出的返回可能不是空值
- 如果一個值,活著是一個屬性的數(shù)據(jù)類型可能是空
2、我們不得不使用Option作為它們的數(shù)據(jù)類型
例如,一個函數(shù)的輸出可能是&str類型或者是輸出是空,函數(shù)的返回類型可以被設(shè)置為 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語言基礎(chǔ)pub關(guān)鍵字及Some語法示例的詳細內(nèi)容,更多關(guān)于rust語言pub Some語法的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Rust中使用Serde對json數(shù)據(jù)進行反序列化
JSON作為目前流行的數(shù)據(jù)格式之一,被大家廣泛使用,在日常的開發(fā)實踐中,將JSON數(shù)據(jù)反序列化為對應(yīng)的類型具有重要的意義,在Rust中,Serde幾乎成了JSON數(shù)據(jù)解析的事實標準,本文將給大家介紹Rust中使用Serde對json數(shù)據(jù)進行反序列化,需要的朋友可以參考下2024-01-01Rust中的方法與關(guān)聯(lián)函數(shù)使用解讀
在Rust中,方法是定義在特定類型(如struct)的impl塊中,第一個參數(shù)是self(可變或不可變),方法用于描述該類型實例的行為,而關(guān)聯(lián)函數(shù)則不包含self參數(shù),常用于構(gòu)造新實例或提供一些與實例無關(guān)的功能,Rust的自動引用和解引用特性使得方法調(diào)用更加簡潔2025-02-02