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

關(guān)于Rust?使用?dotenv?來設(shè)置環(huán)境變量的問題

 更新時間:2022年01月23日 17:22:46   作者:yangxu.pro  
在項目中,我們通常需要設(shè)置一些環(huán)境變量,用來保存一些憑證或其它數(shù)據(jù),這時我們可以使用dotenv這個crate,接下來通過本文給大家介紹Rust?使用dotenv來設(shè)置環(huán)境變量的問題,感興趣的朋友一起看看吧

Rust 語言是一種高效、可靠的通用高級語言。其高效不僅限于開發(fā)效率,它的執(zhí)行效率也是令人稱贊的,是一種少有的兼顧開發(fā)效率和執(zhí)行效率的語言。

Rust語言的特點

高性能 - Rust 速度驚人且內(nèi)存利用率極高。由于沒有運行時和垃圾回收,它能夠勝任對性能要求特別高的服務(wù),可以在嵌入式設(shè)備上運行,還能輕松和其他語言集成。

可靠性 - Rust 豐富的類型系統(tǒng)和所有權(quán)模型保證了內(nèi)存安全和線程安全,讓您在編譯期就能夠消除各種各樣的錯誤。

生產(chǎn)力 - Rust 擁有出色的文檔、友好的編譯器和清晰的錯誤提示信息, 還集成了一流的工具 —— 包管理器和構(gòu)建工具, 智能地自動補全和類型檢驗的多編輯器支持, 以及自動格式化代碼等等。

在項目中,我們通常需要設(shè)置一些環(huán)境變量,用來保存一些憑證或其它數(shù)據(jù),這時我們可以使用 dotenv 這個 crate。

首先在項目中添加 dotenv 這個依賴:

例如在下面這個項目中,需要設(shè)置數(shù)據(jù)庫連接字符串和 Debug 等級這兩個環(huán)境變量。在開發(fā)環(huán)境下,我們可以在項目根目錄下創(chuàng)建 .env 這個文件:

在 .env 文件里,我們設(shè)置兩個環(huán)境變量,分別是 DB_URL 和 LOG_LEVEL:

下面來到 main.rs,想要訪問系統(tǒng)的環(huán)境變量,我們使用標準庫的 std::env 即可:

這里,我們先把獲取到的環(huán)境變量進行遍歷和打印,然后再分別嘗試打印 PATH、DB_URL 和 LOG_LEVEL 這三個環(huán)境變量的值。

結(jié)果如下:

我們可以看到,前面是遍歷打印的環(huán)境變量,后邊打印出了 PATH 的值。然后在嘗試獲取 DB_URL 值的時候程序就恐慌了,因為沒有找到這個環(huán)境變量。

現(xiàn)在我們使用 dotenv 這個 crate:

先把 dotenv 導(dǎo)入,然后在程序開始的地方執(zhí)行 dotenv() 函數(shù)即可,這就會從當前目錄或父目錄中的 .env 文件中加載環(huán)境變量。

如果你想指定其它路徑,可以使用 crate 中提供的 from_filename 或 from_path 這兩個函數(shù)。

好,那么調(diào)用 dotenv() 之后為什么還要調(diào)用 ok() 方法?

首先,dotenv() 返回的是 Result<PathBuf> 類型,如果返回值不使用的話,就會發(fā)出一個警告:

調(diào)用 ok() 之后,會把 Result 轉(zhuǎn)化為 Option,而 Option 就不會產(chǎn)生未使用 Result 的警告了。

那么,為什么不使用 unwrap()?

因為在生產(chǎn)環(huán)境中,你不會使用 .env 這個文件,你應(yīng)該使用真實的環(huán)境變量,這時 dotenv() 函數(shù)就會加載失敗,如果使用 unwrap(),那么你的程序就會停止運行。

所以這里使用 ok() 的目的就是當加載 dotenv 環(huán)境文件失敗的時候可以忽略錯誤。

代碼:

use std::env;
use dotenv::dotenv;
fn main() {
    dotenv().ok();
    for (k, v) in env::vars() {
        println!("{}: {}", k, v);
    }
    println!("PATH: {}", env::var("PATH").unwrap());
    println!("DB: {}", env::var("DB_URL").unwrap());
    println!("LOG: {}", env::var("LOG_LEVEL").unwrap());
}

到此這篇關(guān)于Rust 使用 dotenv 來設(shè)置環(huán)境變量的文章就介紹到這了,更多相關(guān)Rust 設(shè)置環(huán)境變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Rust整合Elasticsearch的詳細過程(收藏)

    Rust整合Elasticsearch的詳細過程(收藏)

    Elasticsearch是基于Lucene構(gòu)建的開源分布式搜索和分析引擎,支持水平擴展和多語言調(diào)用,ELK(Elastic Stack)組合包括Elasticsearch、Kibana、Logstash和Beats,專注于日志數(shù)據(jù)分析和實時監(jiān)控,本文介紹Rust整合Elasticsearch的過程,一起看看吧
    2024-11-11
  • rust閉包的使用

    rust閉包的使用

    閉包在Rust中是非常強大的功能,允許你編寫更靈活和表達性的代碼,本文主要介紹了rust閉包的使用,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Rust?枚舉的使用學(xué)習(xí)筆記

    Rust?枚舉的使用學(xué)習(xí)筆記

    Rust中的枚舉是一種用戶定義的類型,本文主要介紹了Rust枚舉的使用,它們不僅僅用于表示幾個固定的值,還可以包含函數(shù)和方法,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Rust之模式與模式匹配的實現(xiàn)

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

    Rust中的模式匹配功能強大且靈活,它極大地提高了代碼的表達力和可讀性,本文主要介紹了Rust之模式與模式匹配,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • rust解決嵌套——Option類型的map和and_then方法的使用

    rust解決嵌套——Option類型的map和and_then方法的使用

    這篇文章主要介紹了rust解決嵌套——Option類型的map和and_then方法,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • 解讀Rust的Rc<T>:實現(xiàn)多所有權(quán)的智能指針方式

    解讀Rust的Rc<T>:實現(xiàn)多所有權(quán)的智能指針方式

    Rc<T> 是 Rust 中用于多所有權(quán)的引用計數(shù)類型,通過增加引用計數(shù)來管理共享數(shù)據(jù),只有當最后一個引用離開作用域時,數(shù)據(jù)才會被釋放,Rc<T> 適用于單線程環(huán)境,并且只允許不可變共享數(shù)據(jù);需要可變共享時應(yīng)考慮使用 RefCell<T> 或其他解決方案
    2025-02-02
  • Rust實現(xiàn)構(gòu)建器模式和如何使用Bon庫中的構(gòu)建器

    Rust實現(xiàn)構(gòu)建器模式和如何使用Bon庫中的構(gòu)建器

    這篇文章主要介紹了Rust實現(xiàn)構(gòu)建器模式和如何使用Bon庫中的構(gòu)建器,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Rust讀取配置文件的實現(xiàn)

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

    本文主要介紹了Rust讀取配置文件的實現(xiàn),主要讀取Cargo.toml文件,讀取.env文件和讀取自定義toml文件這三種,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Rust用宏實現(xiàn)參數(shù)可變的函數(shù)的實現(xiàn)示例

    Rust用宏實現(xiàn)參數(shù)可變的函數(shù)的實現(xiàn)示例

    本文主要介紹了Rust用宏實現(xiàn)參數(shù)可變的函數(shù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • Rust在Android端集成使用詳解

    Rust在Android端集成使用詳解

    本文介紹了如何在Android平臺上調(diào)用Rust編寫的組件,詳細說明了開發(fā)環(huán)境的搭建、Rust庫的創(chuàng)建、配置和編譯過程,以及如何在Android應(yīng)用中使用Rust編寫的代碼,文中提到飛書底層使用Rust編寫通用組件,展示了Rust在移動端開發(fā)中的應(yīng)用價值
    2024-11-11

最新評論

四子王旗| 延川县| 太谷县| 资中县| 平果县| 乐都县| 会昌县| 周至县| 广平县| 康乐县| 宾川县| 武汉市| 芦溪县| 江华| 安图县| 永泰县| 灌云县| 隆回县| 白沙| 平潭县| 黎城县| 龙里县| 永兴县| 客服| 平泉县| 卓尼县| 始兴县| 桦甸市| 巴青县| 渝中区| 遵义市| 泽普县| 五河县| 安福县| 苗栗市| 堆龙德庆县| 石首市| 水城县| 鸡泽县| 全椒县| 齐河县|