国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Rust學(xué)習(xí)筆記005:結(jié)構(gòu)體 struct

這篇具有很好參考價值的文章主要介紹了Rust學(xué)習(xí)筆記005:結(jié)構(gòu)體 struct。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

????????在 Rust 中,struct 是一種用于創(chuàng)建自定義數(shù)據(jù)類型的關(guān)鍵字,它允許你定義和組織數(shù)據(jù)的結(jié)構(gòu)。struct 可以包含多個不同類型的字段(fields),每個字段都有一個名稱和一個類型。

定義結(jié)構(gòu)體

Rust學(xué)習(xí)筆記005:結(jié)構(gòu)體 struct,語言學(xué)習(xí)筆記,rust,學(xué)習(xí),筆記

????????下面是一個簡單的例子,展示了如何定義和使用 struct

// 定義一個結(jié)構(gòu)體
struct Point {
    x: f64,
    y: f64,
}

// 使用結(jié)構(gòu)體
fn main() {
    // 創(chuàng)建 Point 結(jié)構(gòu)體的實例
    let origin = Point { x: 0.0, y: 0.0 };

    // 訪問結(jié)構(gòu)體的字段
    println!("X coordinate: {}", origin.x);
    println!("Y coordinate: {}", origin.y);

    // 創(chuàng)建可變的結(jié)構(gòu)體實例,并修改字段的值
    let mut point = Point { x: 5.0, y: 10.0 };
    point.x = 7.0;

    // 結(jié)構(gòu)體的解構(gòu)
    let Point { x, y } = point;
    println!("X: {}, Y: {}", x, y);
}

元組結(jié)構(gòu)體(Tuple Structs):

????????Rust 還支持一種特殊的結(jié)構(gòu)體,稱為元組結(jié)構(gòu)體。它們類似于元組,但有一個具體的命名。

Rust學(xué)習(xí)筆記005:結(jié)構(gòu)體 struct,語言學(xué)習(xí)筆記,rust,學(xué)習(xí),筆記

// 元組結(jié)構(gòu)體
struct Color(u8, u8, u8);

fn main() {
    // 創(chuàng)建 Color 元組結(jié)構(gòu)體的實例
    let red = Color(255, 0, 0);

    // 訪問元組結(jié)構(gòu)體的字段
    println!("Red component: {}", red.0);
}

????????在這個例子中,Color 是一個元組結(jié)構(gòu)體,有三個字段,分別表示 RGB 顏色的三個分量。通過 (255, 0, 0) 創(chuàng)建了一個紅色的實例,并通過 .0 訪問了第一個字段。

類單元結(jié)構(gòu)體(Unit-like Structs):

????????有時候,一個結(jié)構(gòu)體不包含任何字段,這種結(jié)構(gòu)體被稱為類單元結(jié)構(gòu)體。

// 類單元結(jié)構(gòu)體
struct EmptyStruct;

fn main() {
    // 創(chuàng)建類單元結(jié)構(gòu)體的實例
    let empty = EmptyStruct;
    // 無字段可訪問
}

????????這是一個非常簡單的例子,但有時候類單元結(jié)構(gòu)體用于實現(xiàn)某種特定的 trait,或者作為類型標(biāo)記的一部分。

可變性

如果結(jié)構(gòu)體的某個字段需要被修改,需要將結(jié)構(gòu)體聲明為可變的。可變性在 Rust 中是默認(rèn)不可變的,因此如果要修改結(jié)構(gòu)體的字段,需要使用 mut 關(guān)鍵字。

struct MutableStruct {
    value: i32,
}

impl MutableStruct {
    fn modify_value(&mut self, new_value: i32) {
        self.value = new_value;
    }
}

fn main() {
    let mut my_struct = MutableStruct { value: 42 };
    my_struct.modify_value(10);
    println!("Modified value: {}", my_struct.value);
}

作為函數(shù)返回值

Rust學(xué)習(xí)筆記005:結(jié)構(gòu)體 struct,語言學(xué)習(xí)筆記,rust,學(xué)習(xí),筆記

簡寫初始化

Rust學(xué)習(xí)筆記005:結(jié)構(gòu)體 struct,語言學(xué)習(xí)筆記,rust,學(xué)習(xí),筆記

更新語法

struct Point {
    x: f64,
    y: f64,
}

fn main() {
    let p1 = Point { x: 1.0, y: 2.0 };

    // 使用更新語法創(chuàng)建新的結(jié)構(gòu)體實例
    let p2 = Point { x: 3.0, ..p1 };

    println!("p2.x: {}", p2.x); // 輸出: 3.0
    println!("p2.y: {}", p2.y); // 輸出: 2.0 (來自于 p1)
}

在這個例子中,Point { x: 3.0, ..p1 } 創(chuàng)建了一個新的 Point 實例 p2,其中 x 被更新為 3.0,而 y 則繼承自現(xiàn)有實例 p1

方法

Rust學(xué)習(xí)筆記005:結(jié)構(gòu)體 struct,語言學(xué)習(xí)筆記,rust,學(xué)習(xí),筆記

Rust學(xué)習(xí)筆記005:結(jié)構(gòu)體 struct,語言學(xué)習(xí)筆記,rust,學(xué)習(xí),筆記文章來源地址http://www.zghlxwxcb.cn/news/detail-775554.html

  • 注:#[derive(Debug)]通過trait實現(xiàn)“繼承”(本質(zhì)是代碼復(fù)用)
    Rust學(xué)習(xí)筆記005:結(jié)構(gòu)體 struct,語言學(xué)習(xí)筆記,rust,學(xué)習(xí),筆記
    Rust學(xué)習(xí)筆記005:結(jié)構(gòu)體 struct,語言學(xué)習(xí)筆記,rust,學(xué)習(xí),筆記

到了這里,關(guān)于Rust學(xué)習(xí)筆記005:結(jié)構(gòu)體 struct的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【學(xué)習(xí)筆記】數(shù)據(jù)結(jié)構(gòu)算法文檔(類C語言)

    1.1.1 線性表的順序存儲表示 1.1.2 順序表中基本操作的實現(xiàn) 1.1.2.1 初始化 1.1.2.2 取值 1.1.2.3 查找 1.1.2.4 插入 1.1.2.5 刪除 1.1.2.6 計數(shù) 1.2.1 單鏈表的定義和表示 ★ 關(guān)于結(jié)點 1.2.2 單鏈表基本操作的實現(xiàn) 1.2.2.1 初始化 1.2.2.2 取值 1.2.2.3 查找 1.2.2.4 插入 1.2.2.5 刪除 1.2.2.6 前插法創(chuàng)建單

    2024年02月07日
    瀏覽(53)
  • 數(shù)據(jù)結(jié)構(gòu)(c++語言版) 鄧俊輝 第五章:二叉樹學(xué)習(xí)筆記

    數(shù)據(jù)結(jié)構(gòu)(c++語言版) 鄧俊輝 第五章:二叉樹學(xué)習(xí)筆記

    5.1二叉樹及其表示 ????????樹是由節(jié)點和邊組成的。 1.有根樹 ??????? 樹是由頂點(vertex)和邊(edge)組成。樹的每個頂點也叫節(jié)點(node)。 2.深度與層次 ????????由樹的連通性,每一節(jié)點與根都有一條路徑相連:根據(jù)樹的無環(huán)性,由根通往每個節(jié)點的路徑必然唯一。 ?

    2024年02月13日
    瀏覽(26)
  • Rust 程序設(shè)計語言學(xué)習(xí)——基礎(chǔ)語法

    Rust 程序設(shè)計語言學(xué)習(xí)——基礎(chǔ)語法

    Rust 語言是一種高效、可靠的通用高級語言。其高效不僅限于開發(fā)效率,它的執(zhí)行效率也是令人稱贊的,是一種少有的兼顧開發(fā)效率和執(zhí)行效率的語言。 Rust 語言由 Mozilla 開發(fā),最早發(fā)布于 2014 年 9 月。Rust 的編譯器是在 MIT License 和 Apache License 2.0 雙重協(xié)議聲明下的免費開源軟

    2024年01月22日
    瀏覽(27)
  • C#: 結(jié)構(gòu)體 struct 應(yīng)用筆記

    說明:記錄 在 C# 中的一些結(jié)構(gòu)體相關(guān)的應(yīng)用 ????????在下面的示例中,在struct中定義了一個固定長度為 8 的 byte 數(shù)組 data 。通過使用 MarshalAsAttribute 的 UnmanagedType.ByValArray 參數(shù),指定了數(shù)組的類型為值類型數(shù)組,并使用 SizeConst 字段指定了數(shù)組的大小為 8。請注意,使用固

    2024年01月17日
    瀏覽(21)
  • 【Rust】Rust學(xué)習(xí) 第十三章Rust 中的函數(shù)式語言功能:迭代器與閉包

    【Rust】Rust學(xué)習(xí) 第十三章Rust 中的函數(shù)式語言功能:迭代器與閉包

    Rust 的設(shè)計靈感來源于很多現(xiàn)存的語言和技術(shù)。其中一個顯著的影響就是? 函數(shù)式編程 ( functional programming )。函數(shù)式編程風(fēng)格通常包含將函數(shù)作為參數(shù)值或其他函數(shù)的返回值、將函數(shù)賦值給變量以供之后執(zhí)行等等。 更具體的,我們將要涉及: 閉包 ( Closures ),一個可以儲

    2024年02月12日
    瀏覽(32)
  • 【005】ts學(xué)習(xí)筆記【函數(shù)擴(kuò)展】

    【005】ts學(xué)習(xí)筆記【函數(shù)擴(kuò)展】

    參數(shù)類型 可選參數(shù)與默認(rèn)值 接口定義函數(shù) 定義剩余參數(shù) 函數(shù)重載 定義 函數(shù)重載是指在 TypeScript 中定義多個具有相同名稱但參數(shù)類型或參數(shù)數(shù)量不同的函數(shù)聲明。 函數(shù)重載規(guī)則 1, 多個函數(shù)定義使用相同的函數(shù)名稱 2, 函數(shù)參數(shù)的數(shù)量或類型必須有區(qū)別 3,如果參數(shù)類型不同

    2024年02月11日
    瀏覽(19)
  • 前端技術(shù)Vue學(xué)習(xí)筆記--005

    前端技術(shù)Vue學(xué)習(xí)筆記--005

    作用:非父子組件之間,進(jìn)行簡易消息傳遞。 (復(fù)雜場景用----Vuex) 使用步驟: 創(chuàng)建一個 都能訪問的事件總線 (空Vue實例)-----utils/EventBus.js A組件(接受方), 監(jiān)聽Bus的 $on事件 B組件(發(fā)送方), 觸發(fā)Bus實例的事件 provideindect作用: 跨層級 共享數(shù)據(jù) 語法: 父組件 provi

    2024年02月12日
    瀏覽(19)
  • go 筆記 第九章 結(jié)構(gòu)體 struct 聲明和使用

    package main import “fmt” type qm struct { name string age int hobby []string home } type home struct { address string } // 給結(jié)構(gòu)體聲明方法 func (q qm) song(name string) (ret string) { ret = “驚雷” fmt.Printf(“%v—%v–%v”, q.name, name, q.age) fmt.Println() return ret } func (h home) open() { fmt.Println(“open”) } func main() { v

    2024年02月16日
    瀏覽(22)
  • 《綜合與Design_Compiler》學(xué)習(xí)筆記——第一章綜合綜述 第二章verilog語言結(jié)構(gòu)到門級的映射 第三章 使用DC進(jìn)行綜合

    《綜合與Design_Compiler》學(xué)習(xí)筆記——第一章綜合綜述 第二章verilog語言結(jié)構(gòu)到門級的映射 第三章 使用DC進(jìn)行綜合

    2023.6.25 2023.6.27 和之前學(xué)的芯動力mooc中很多內(nèi)容相似,這篇整理的邏輯更好些 將RTL代碼轉(zhuǎn)換到基于工藝庫的門級網(wǎng)表。一般分為如下三個步驟。 (1)邏輯級綜合 設(shè)計被描述成 布爾等式 的形式,觸發(fā)器、鎖存器這樣的基本單元采用元件例化(instantiate)的方式表達(dá)出來,下面是

    2024年02月12日
    瀏覽(24)
  • Rust語法:變量,函數(shù),控制流,struct

    Rust語法:變量,函數(shù),控制流,struct

    可變與不可變變量 Rust中使用let來聲明變量,但是let聲明的是不可變變量,如果想要可變,則需要加上mut 變量與常量 常量與不可變變量一樣都是不能被修改的,但是他與不可變變量有很多區(qū)別。 常量用const聲明,且必須標(biāo)注其類型 常量不能加mut修飾 常量可以在任何作

    2024年02月13日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包