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

Rust包和Crate超詳細(xì)講解

 更新時(shí)間:2022年12月16日 10:07:04   作者:上后左愛(ài)  
這篇文章主要介紹了Rust包管理和Crate,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

包和crate

  • 通過(guò)相關(guān)功能進(jìn)行分組和劃分不同的功能代碼, 將代碼分割成多個(gè)模塊和多個(gè)文件組織代碼, 一個(gè)包包含 多個(gè)crate 和一個(gè)可選的crate, Cargo 類(lèi)似C++ 提供一個(gè)工作空間命名 類(lèi)似JAVA中包空間。
  • 避免重復(fù)造輪子, 其他代碼通過(guò)公關(guān)接口進(jìn)行調(diào)用。
  • 模塊系統(tǒng): 包,Crates(模塊樹(shù)形結(jié)構(gòu),庫(kù)和二進(jìn)制項(xiàng)目), 模塊, 路徑。
  • *crate 是一個(gè)二進(jìn)制項(xiàng)/ 庫(kù), rust編譯以crate root源文件為起點(diǎn),包中包含一個(gè)Cargo.toml 描述如何構(gòu)建crate.

$ cargo new my-project
     Created binary (application) `my-project` package
$ ls my-project
Cargo.toml
src
$ ls my-project/src
main.rs

Cargo 遵循一個(gè)約定 src/main.rs是一個(gè)與包同名二進(jìn)制crate的根,如果包中同時(shí)包含src/main.rs, src/lib.rs 表示擁有多個(gè)與包同名的crate, 每個(gè)src/bin 文件都會(huì)被編譯成獨(dú)立的庫(kù)

模塊控制作用域與私有性

模塊能夠?qū)?kù)中代碼進(jìn)行分組, 提供可讀性和重用性

use 引入外部依賴(lài), pub公有關(guān)鍵字, as關(guān)鍵字 glob運(yùn)算符。

// 一個(gè)包包含其他內(nèi)置函數(shù)模塊的 front_of_house
mod front_of_house {
    mod hosting {
        fn add_to_waitlist() {}
        fn seat_at_table() {}
    }
    mod serving {
        fn take_order() {}
        fn serve_order() {}
        fn take_payment() {}
    }
}
crate
 └── front_of_house
     ├── hosting
     │   ├── add_to_waitlist
     │   └── seat_at_table
     └── serving
         ├── take_order
         ├── serve_order
         └── take_payment

###模塊中路徑

  • rust如何在一個(gè)模塊中找到一個(gè)項(xiàng),路徑有兩種形式, 跟著一個(gè):: 作為分割標(biāo)識(shí)符
  • 絕對(duì)路徑: 從crate根開(kāi)始
  • 相對(duì)路徑 : 以self, super
mod front_of_house {
    mod hosting {
        fn add_to_waitlist() {}
    }
}
pub fn eat_at_restaurant() {
    // 絕對(duì)路徑
    crate::front_of_house::hosting::add_to_waitlist();
    // 相對(duì)路徑
    front_of_house::hosting::add_to_waitlist();
}

如上此代碼不能編譯 原因在于 hosting 在 mod的內(nèi)部, 屬于私有的模塊 不能被外部調(diào)用 ,rust中默認(rèn)所有項(xiàng)(函數(shù)、方法、結(jié)構(gòu)體、枚舉、模塊和常量)都是私有的。

父模塊不能使用子模塊的所有項(xiàng),但是子模塊可以,如果想要外部調(diào)用 必須的要增加 pub 關(guān)鍵字進(jìn)行暴露

pub fn eat_at_restaurant() {
    // 絕對(duì)路徑
    crate::front_of_house::hosting::add_to_waitlist();
    // 相對(duì)路徑
    front_of_house::hosting::add_to_waitlist();
}

use 進(jìn)行模塊引入

mod front_of_house {
    pub mod hosting {
        pub fn add_to_waitlist() {}
        fn seat_at_table() {}
    }
    mod serving {
        fn take_order() {}
        fn serve_order() {}
        fn take_payment() {}
    }
}
use crate::front_of_house::hosting;
use self::front_of_house::hosting;
pub fn eat_at_restaurant() {
    hosting::add_to_waitlist();
}

解決將兩個(gè)同類(lèi)型引入同一個(gè)作用域 導(dǎo)致rust編譯錯(cuò)誤問(wèn)題 使用as 關(guān)鍵字解決此等問(wèn)題

use std::fmt::Result;
use std::io::Result as IoResult;

pub use 能夠讓其他人導(dǎo)入他們自己的作用域

pub use crate::front_of_house::hosting

使用外部包的話需要Cargo.toml 下面增加

rand = "0.8.3"

到此這篇關(guān)于Rust包和Crate超詳細(xì)講解的文章就介紹到這了,更多相關(guān)Rust包和Crate內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Rust中引用的具體使用

    Rust中引用的具體使用

    在Rust語(yǔ)言中,引用機(jī)制是其所有權(quán)系統(tǒng)的重要組成部分,ust提供了兩種類(lèi)型的引用,不可變引用和可變引用,本文就來(lái)詳細(xì)的介紹一下這兩種的用法,感興趣的可以了解一下
    2024-03-03
  • 淺析Rust多線程中如何安全的使用變量

    淺析Rust多線程中如何安全的使用變量

    這篇文章主要為大家詳細(xì)介紹了Rust如何在線程的閉包中安全的使用變量,包括共享變量和修改變量,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考下
    2025-01-01
  • Rust讀取配置文件的實(shí)現(xiàn)

    Rust讀取配置文件的實(shí)現(xiàn)

    本文主要介紹了Rust讀取配置文件的實(shí)現(xiàn),主要讀取Cargo.toml文件,讀取.env文件和讀取自定義toml文件這三種,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Rust常用功能實(shí)例代碼匯總

    Rust常用功能實(shí)例代碼匯總

    通過(guò)一系列實(shí)用示例展示了Rust在文件操作、網(wǎng)絡(luò)請(qǐng)求、并發(fā)編程、命令行工具以及數(shù)據(jù)庫(kù)操作等方面的應(yīng)用,這些示例不僅展示了 Rust 的強(qiáng)大功能,還提供了實(shí)際開(kāi)發(fā)中的指導(dǎo)和參考,通過(guò)這些示例,您可以更好地理解 Rust 的特性,并將其應(yīng)用于您的項(xiàng)目中
    2024-12-12
  • Rust中vector的詳細(xì)用法

    Rust中vector的詳細(xì)用法

    Rust和C++同樣也有vector概念,本文主要介紹了Rust中vector的詳細(xì)用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • 一文學(xué)會(huì)Rust語(yǔ)言如何操作JSON

    一文學(xué)會(huì)Rust語(yǔ)言如何操作JSON

    JSON在Web開(kāi)發(fā)中被廣泛應(yīng)用于數(shù)據(jù)交換,本文主要介紹了Rust語(yǔ)言操作JSON,包括序列化、反序列化、JSON創(chuàng)建等多個(gè)方面,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Rust文本處理快速入門(mén)

    Rust文本處理快速入門(mén)

    編程過(guò)程中有許多類(lèi)型的數(shù)據(jù)要處理,其中文本處理必不可少,本文主要介紹了Rust文本處理快速入門(mén) ,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • 淺談Rust?+=?運(yùn)算符與?MIR?應(yīng)用

    淺談Rust?+=?運(yùn)算符與?MIR?應(yīng)用

    這篇文章主要介紹了Rust?+=?運(yùn)算符與?MIR?應(yīng)用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • Windows系統(tǒng)下安裝Rust環(huán)境超詳細(xì)教程

    Windows系統(tǒng)下安裝Rust環(huán)境超詳細(xì)教程

    這篇文章主要介紹了如何在Windows系統(tǒng)上安裝mingw64和Rust,mingw64是一個(gè)輕便的C語(yǔ)言編譯環(huán)境,可以替代Rust默認(rèn)使用的Visual?Studio,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • Rust實(shí)現(xiàn)AES加解密詳解

    Rust實(shí)現(xiàn)AES加解密詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Rust語(yǔ)言實(shí)現(xiàn)AES加解密算法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以了解一下
    2022-10-10

最新評(píng)論

霍邱县| 永福县| 贵德县| 武隆县| 连江县| 台北县| 宜阳县| 肥西县| 池州市| 额济纳旗| 临颍县| 襄城县| 兖州市| 沁阳市| 九江县| 兰西县| 沙湾县| 新津县| 富锦市| 甘孜| 富平县| 嘉鱼县| 崇明县| 积石山| 百色市| 慈溪市| 伊吾县| 临桂县| 阿鲁科尔沁旗| 东乡县| 铁岭市| 云南省| 三亚市| 稷山县| 康乐县| 武冈市| 富蕴县| 东辽县| 英山县| 蓬安县| 香港|