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可迭代類型迭代器正確創(chuàng)建自定義可迭代類型的方法
在 Rust 中, 如果一個類型實現(xiàn)了 Iterator, 那么它會被同時實現(xiàn) IntoIterator, 具體邏輯是返回自身, 因為自身就是迭代器,這篇文章主要介紹了Rust可迭代類型迭代器正確創(chuàng)建自定義可迭代類型的方法,需要的朋友可以參考下2023-12-12
Rust 連接 SQLite 數(shù)據(jù)庫的過程解析
本文通過一個例子給大家介紹了Rust 連接 SQLite 數(shù)據(jù)庫的詳細(xì)過程,我使用rusqlite這個crate,對Rust 連接 SQLite 數(shù)據(jù)庫相關(guān)知識感興趣的朋友跟隨小編一起看看吧2022-01-01
使用環(huán)境變量實現(xiàn)Rust程序中的不區(qū)分大小寫搜索方式
本文介紹了如何在Rust中實現(xiàn)不區(qū)分大小寫的搜索功能,并通過測試驅(qū)動開發(fā)(TDD)方法逐步實現(xiàn)該功能,通過修改運行函數(shù)和獲取環(huán)境變量,程序可以根據(jù)環(huán)境變量控制搜索模式2025-02-02

