最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

rust語言基礎(chǔ)pub關(guān)鍵字及Some語法示例

 更新時間:2023年07月19日 10:53:43   作者:子棲  
這篇文章主要為大家介紹了rust語言基礎(chǔ)pub關(guān)鍵字及Some語法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

rust語言pub關(guān)鍵字語法

在rust中,pub是一個關(guān)鍵字,用于指定一個項的可見性。它可以被用來控制模塊(module)中的函數(shù)、結(jié)構(gòu)體、枚舉、常量、trait等的可見性。

如果一個項被標(biāo)記為pub,則可以被外部的模塊訪問和使用。如果一個項沒有被標(biāo)記為pub,則它只能在當(dāng)前模塊內(nèi)部訪問。

// 模塊定義
mod foo {
    // 函數(shù)定義,沒有標(biāo)記 pub
    fn private_function() {
        println!("This is a private function.");
    }
    // 函數(shù)定義,標(biāo)記 pub
    pub fn public_function() {
        println!("This is a public function.");
    }
    // 結(jié)構(gòu)體定義,標(biāo)記 pub
    pub struct PublicStruct {
        pub field1: i32,
        field2: i32,
    }
    // 枚舉定義,標(biāo)記 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語法示例的詳細(xì)內(nèi)容,更多關(guān)于rust語言pub Some語法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Rust文件I/O操作多種場景應(yīng)用筆記

    Rust文件I/O操作多種場景應(yīng)用筆記

    這篇文章主要介紹了Rust文件I/O操作多種場景的應(yīng)用,Rust的文件I/O操作提供了豐富的功能,從基本的文件讀寫到高級的目錄操作、元數(shù)據(jù)獲取、臨時文件和異步I/O,通過掌握這些高級應(yīng)用,我們可以編寫更加高效、可靠的文件操作代碼,需要的朋友可以參考下
    2026-05-05
  • Rust可迭代類型迭代器正確創(chuàng)建自定義可迭代類型的方法

    Rust可迭代類型迭代器正確創(chuàng)建自定義可迭代類型的方法

    在 Rust 中, 如果一個類型實現(xiàn)了 Iterator, 那么它會被同時實現(xiàn) IntoIterator, 具體邏輯是返回自身, 因為自身就是迭代器,這篇文章主要介紹了Rust可迭代類型迭代器正確創(chuàng)建自定義可迭代類型的方法,需要的朋友可以參考下
    2023-12-12
  • 基于Rust構(gòu)建一個Git提交歷史可視化工具

    基于Rust構(gòu)建一個Git提交歷史可視化工具

    在軟件開發(fā)中,版本控制系統(tǒng)的歷史記錄往往承載著項目的演進脈絡(luò),本文主要介紹了如何基于Rust構(gòu)建一個Git提交歷史可視化工具,感興趣的小伙伴可以了解下
    2025-11-11
  • Rust 連接 SQLite 數(shù)據(jù)庫的過程解析

    Rust 連接 SQLite 數(shù)據(jù)庫的過程解析

    本文通過一個例子給大家介紹了Rust 連接 SQLite 數(shù)據(jù)庫的詳細(xì)過程,我使用rusqlite這個crate,對Rust 連接 SQLite 數(shù)據(jù)庫相關(guān)知識感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • rust多樣化錯誤處理(從零學(xué)習(xí))

    rust多樣化錯誤處理(從零學(xué)習(xí))

    一個優(yōu)秀的項目,錯誤處理的優(yōu)雅性是至關(guān)重要的,而rust,anyhow creat是繞不過去的一個,今天我們來研究下,怎么使用它,幫助我們寫出更優(yōu)雅的代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-11-11
  • Rust 語言中的dyn 關(guān)鍵字及用途解析

    Rust 語言中的dyn 關(guān)鍵字及用途解析

    在Rust中,"dyn"關(guān)鍵字用于表示動態(tài)分發(fā)(dynamic dispatch),它通常與trait對象一起使用,以實現(xiàn)運行時多態(tài), 在Rust中,多態(tài)是通過trait和impl來實現(xiàn)的,這篇文章主要介紹了Rust 語言中的 dyn 關(guān)鍵字,需要的朋友可以參考下
    2024-03-03
  • Rust之模式與模式匹配的實現(xiàn)

    Rust之模式與模式匹配的實現(xiàn)

    Rust中的模式匹配功能強大且靈活,它極大地提高了代碼的表達(dá)力和可讀性,本文主要介紹了Rust之模式與模式匹配,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 使用環(huán)境變量實現(xiàn)Rust程序中的不區(qū)分大小寫搜索方式

    使用環(huán)境變量實現(xiàn)Rust程序中的不區(qū)分大小寫搜索方式

    本文介紹了如何在Rust中實現(xiàn)不區(qū)分大小寫的搜索功能,并通過測試驅(qū)動開發(fā)(TDD)方法逐步實現(xiàn)該功能,通過修改運行函數(shù)和獲取環(huán)境變量,程序可以根據(jù)環(huán)境變量控制搜索模式
    2025-02-02
  • rust udp編程方法的具體使用

    rust udp編程方法的具體使用

    Rust標(biāo)準(zhǔn)庫通過std::net模塊提供了UDP網(wǎng)絡(luò)編程支持,下面就來介紹一下rust udp編程方法的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2025-06-06
  • 一文弄懂Rust之切片

    一文弄懂Rust之切片

    在Rust中,切片是一種非常重要的引用類型,它允許你安全地引用一段連續(xù)內(nèi)存中的數(shù)據(jù),而不需要擁有這些數(shù)據(jù)的所有權(quán),本文主要介紹了Rust之切片,感興趣的可以了解一下
    2024-03-03

最新評論

句容市| 洪湖市| 大足县| 鄄城县| 开原市| 娄底市| 鄂温| 遂昌县| 盈江县| 晋城| 汨罗市| 龙胜| 上饶县| 那曲县| 论坛| 龙岩市| 湄潭县| 轮台县| 松溪县| 文登市| 西平县| 北海市| 开封县| 桂东县| 互助| 江山市| 喀喇沁旗| 慈溪市| 六盘水市| 阜康市| 云安县| 黔江区| 临沭县| 饶阳县| 通海县| 蚌埠市| 滕州市| 芜湖市| 苗栗县| 涪陵区| 山阴县|