精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

在Rust中處理命令行參數和環境變量

開發 前端
在本章節中, 我們探討了Rust處理命令行參數的常見的兩種方式和處理環境變量的兩種常見方式, 拋開Rust的語法, 實際上在命令行參數的處理方式上, 與其它語言大同小異, 可能影響我們習慣的也就只剩下語法。

1.摘要

Rust的命令行和環境變量處理在標準庫中提供了一整套實現方法, 在本文中除了探索標準庫的使用方法之外, 也在不斷適應Rust獨有的語法特點。在本文中, 我們通過標準庫函數的返回值熟悉了迭代器的使用方法, 操作迭代器精確控制保存的內容, 包括字符串和鍵值對的使用方法。

2.讀取參數值

在Rust編程中要讀取命令行參數的值, 標準庫提供了一個函數: std::env::args, 該函數返回一個傳遞給命令行參數的迭代器, 迭代器中保存了所有參數內容, 調用者需要調用collect方法將其轉換成一個集合, 先看一段示例代碼:

use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();
    dbg!(args);
}

在上面的代碼中, 首先使用use語句將std::env模塊引入作用域以便使用它的args函數。然后調用其collect()方法, 該方法將接收命令行所有參數內容并保存到變量args中, 接著使用dbg!宏打印了args的內容。

現在將這段代碼編譯執行會發現沒有任何內容輸出, 這是因為執行運行沒有參數信息, 現在我們設計一個場景, 通過search參數來搜索一個文件, 完整命令如下:

cargo run -- search filename.txt

注意: 參數符號"--"與參數名之間有空格。

執行結果如下:

圖片圖片

從返回的結果來看, 集合中保存了三個參數, 實際上第一個參數是我們二進制文件名稱, 這跟C語言中的參數列表的行為很類似, 除了獲取到調用的程序名稱, 還包括所有以空格隔開的參數名稱。

3.將參數值保存到變量

在上面的例子中, 參數內容保存到了args變量中, 下面修改一下程序,代碼如下:

use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();
    
    let param_name = &args[1];
    let file_name = &args[2];
    
    println!("第一個參數名:{}", param_name);
    println!("第二個參數名:{}", file_name);
}

在上面的代碼中, 我們根據數組索引來取變量名稱, 例如: args[0]對應是集合中的第一個元素, 也就是二進制程序名, 這個不是我們需要的, 如果要取參數search的內容, 使用args[1], 取文件名使用args[2], 以此類推。

執行結果如下:

圖片圖片

通過不同的變量分別接收不同的參數名, 在程序后面的邏輯中, 就可以使用這些保存獨立參數的變量名了。

4.處理環境變量

在std::env模塊中, 標準庫同樣提供了獲取環境變量的函數,為: env::vars(), 下面的代碼將把我這臺電腦的環境變量全部打印出來:

use std::env;

fn main() {
    for (key, value) in env::vars() {
        println!("{} => {}", key, value);
    }
}

同樣, env::vars()返回的也是一個迭代器, 不同的是, 數據結構是以key:value對的形式保存, 程序中分別將key和value進行打印:

圖片圖片

下面我們在程序中增加一項功能, 因為打印的參數實在太多, 我想把Path環境變量的內容打印出來該怎么做呢?,修改以下代碼:

use std::env;

fn main() {
    let search_key = "PATH";
    match env::var(search_key) {
        Ok(val) => {
            println!("PATH變量保存的內容為:{}", val);
        },
        Err(e) => println!("無法找到key:{}, 錯誤為:{}", search_key, e)
    }
}

在上面的代碼中, 我定義了一個需要搜索的Key名為"PATH", 并使用match正則直接在env::var()的返回迭代器中搜索Key名,這里env::var(param)為什么可以接收參數呢? 進入env.rs源碼可以看到以下代碼:

圖片圖片

env::var()接收需要搜索的Key,返回了一個Result<T, E>類型, 上面還給了一個使用的示例。

從env:var()函數內部,我們可以看到返回的是一個Result<String, VarError>類型,因此,如果獲取成功,在Ok()宏中可以設置參數接收結果,而使用Err()宏接收可能因失敗返回的錯誤, 先看下成功的情況, 打印PATH環境變量內容如下:

圖片圖片

現在再看一個搜索失敗的情況, 將要搜索的key的內容修改為: "SUNTIGER", 執行結果如下:

圖片圖片

此時將走另一個流程, 利用Err()宏打印錯誤信息。

除此之外, std::env包中還包含其他的一些方法, 例如:設置環境變量:set_var()、刪除當前運行進程的環境變量:remove_var()等,感興趣的可以查看Rust的官方文檔, 這里不再贅述。

5.總結

在本章節中, 我們探討了Rust處理命令行參數的常見的兩種方式和處理環境變量的兩種常見方式, 拋開Rust的語法, 實際上在命令行參數的處理方式上, 與其它語言大同小異, 可能影響我們習慣的也就只剩下語法。Rust在某些機制實現上跟Go語言比起來可能略顯繁瑣, 但我們在學習任何語言的時候首先要想到每種編程語言的主要特點, 例如: Go語言主打一個語法簡潔和高并發, 因此學習Go語言上手感覺特別快, 而且在處理高并發過程中, Go語言的協程和通道使用起來特別容易,性能也非常不錯。而Rust的主打特點是內存安全, 要將這種安全思想貫穿全局, Rust會強行轉換使用它的每個人的編程思想, 而Rust編譯器就像映射的鏡子, 任何不好的編程習慣和疏忽換來的都是紅色的錯誤提示。

責任編輯:武曉燕 來源: 二進制空間安全
相關推薦

2017-03-08 11:10:39

LinuxShell命令

2023-12-12 13:22:00

LinuxDocker容器

2009-07-15 17:10:26

Jython解析命令行

2021-11-18 15:54:17

FreeDOSLinux

2010-11-24 15:33:59

mysql命令行參數

2010-03-10 17:23:37

Python 命令行參

2011-06-14 09:21:55

Linux Qt 環境變量

2024-01-29 00:21:14

環境變量數據

2021-07-12 14:53:27

LinuxGmail電子郵件

2010-03-24 14:08:10

CentOS命令行

2018-04-23 08:45:05

Linux命令行

2018-07-10 14:29:05

Linux命令行

2010-07-20 14:02:38

Perl命令行參數

2010-07-26 09:32:41

Perl命令行

2011-08-22 11:51:13

Linuxconfigure

2023-03-28 08:40:22

命令行JSON用法

2023-03-01 11:35:45

2010-05-27 17:17:29

Linux查看環境變量

2022-10-25 13:01:36

Linux命令行空目錄

2010-07-15 09:27:25

Perl命令行
點贊
收藏

51CTO技術棧公眾號

亚洲有吗中文字幕| 玛雅亚洲电影| 国产99久久久国产精品潘金| 91av福利视频| 最近中文字幕免费视频| 国产亚洲亚洲国产一二区| 亚洲不卡av一区二区三区| 日韩成人av网站| 亚洲奶汁xxxx哺乳期| 亚洲欧美日本视频在线观看| 麻豆国产精品va在线观看不卡 | 国产毛片精品视频| 91精品国产成人| 污污的视频在线免费观看| 欧美重口另类| 日韩一级成人av| 色片在线免费观看| 亚洲涩涩在线| 亚洲一区二区三区四区五区中文 | 男人天堂久久久| 99国产精品视频免费观看| 国产欧美日韩专区发布| 日本一区二区三区精品| 欧美日韩四区| 日韩一区av在线| 白丝女仆被免费网站| 亚洲日本va中文字幕| 欧美三级电影在线观看| 黄色国产精品视频| 波多野结依一区| 依依成人精品视频| 亚洲午夜精品久久| 国产在线小视频| 久久综合九色综合97婷婷| 国产高清在线精品一区二区三区| 国产免费一区二区三区最新不卡 | 69成人在线| 国产精品高潮呻吟| 色综合久久久久久久久五月| 欧洲综合视频| 91蝌蚪porny| 精品久久一区二区三区蜜桃| 国精品人妻无码一区二区三区喝尿 | 国产日韩欧美一区二区东京热 | 麻豆tv在线观看| 麻豆国产精品| 日韩写真欧美这视频| 亚洲第一色av| 91精品视频一区二区| 欧美日韩一级二级| 一个色综合久久| 日本免费一区二区三区等视频| 91国产福利在线| 能在线观看的av网站| 一区二区电影免费观看| 欧美午夜精品久久久久久人妖| 日本在线xxx| 免费看男女www网站入口在线| 午夜精品久久久久久久久久久| 国产九色porny| 欧美裸体视频| 在线观看一区日韩| 亚洲欧洲日本精品| 在线免费观看亚洲| 日韩免费视频一区| 少妇被狂c下部羞羞漫画| 精品午夜电影| 亚洲精品影视在线观看| 国产黄色大片免费看| 日本一区二区在线看| 久久精品夜夜夜夜夜久久| 日本午夜在线观看| 激情久久久久| 日本欧美中文字幕| 伊人精品在线视频| 国产精品18久久久久久久久| 国产精品一级久久久| 三级视频在线| 国产精品久久久久影院色老大| 天天操天天干天天玩| xxxcom在线观看| 日本韩国一区二区三区视频| 国产精品嫩草影院8vv8 | 狠狠色综合日日| 粉嫩av一区二区三区免费观看| 天天摸夜夜添狠狠添婷婷| 久久久精品tv| 欧美精品久久96人妻无码| 99久久精品免费看国产小宝寻花| 色综合色狠狠综合色| 九九热99视频| av成人资源| 在线观看视频99| 日韩av黄色片| 久久99精品久久久久久久久久久久 | 亚洲网站在线免费观看| 国产69精品久久99不卡| 色一情一乱一伦一区二区三区| 2021av在线| 亚洲国产一区视频| www.com黄色片| 国内自拍欧美| 中文字幕日韩有码| 日本一区二区三区免费视频| 久久成人免费电影| 欧美高清一区二区| 青春草在线免费视频| 欧美偷拍一区二区| 亚洲av成人片色在线观看高潮| 久久精品久久久| 日韩美女激情视频| 日日夜夜精品免费| 亚洲免费资源在线播放| 亚洲黄色a v| 免费av一区| 久久久久久久久久久免费| 中文字幕一区二区三区四区免费看 | 久久综合九色| 精品视频导航| 色呦呦在线视频| 777奇米成人网| 国产探花视频在线播放| 国产欧美午夜| 国产精品免费在线播放| 八戒八戒神马在线电影| 欧美性猛片aaaaaaa做受| 日本免费福利视频| 亚洲精选在线| 国产专区一区二区| av电影院在线看| 精品成人一区二区| 久草福利资源在线观看| 国产米奇在线777精品观看| 亚洲激情一区二区三区| 欧美在线va视频| 亚洲视频777| 成人免费毛片视频| 91美女片黄在线观看91美女| 日韩伦理在线免费观看| 影音先锋欧美激情| 欧美黑人性视频| www.蜜臀av| 一区二区三区四区在线免费观看 | 99精品欧美一区二区三区小说 | 99精品偷自拍| www.玖玖玖| 亚洲丝袜啪啪| 国产成人97精品免费看片| 免费在线高清av| 在线观看日韩毛片| 91成人精品一区二区| 日韩高清欧美激情| 亚洲欧美成人一区| 亚洲伊人精品酒店| 欧美高清在线观看| 人妻91麻豆一区二区三区| 精品久久久久久久久久久久| 中文字幕一区三区久久女搜查官| 99亚洲一区二区| 欧美一区视久久| 国产精品久久乐| 美女啪啪无遮挡免费久久网站| www.xxxx国产| 黑人精品xxx一区一二区| 日本二区在线观看| 久久99热这里只有精品| 成人免费a级片| 欧美日韩一区二区三区四区不卡 | 999久久久精品一区二区| 国模视频一区二区| 久草在线免费福利资源| 欧美日韩免费一区二区三区| 9999热视频| 99视频在线精品| 午夜免费福利在线| 欧美黄色大片网站| 美日韩免费视频| 日本久久二区| 91av视频导航| 欧美午夜电影一区二区三区| 亚洲变态欧美另类捆绑| 成人午夜精品视频| 亚洲自拍偷拍欧美| 少妇一级黄色片| 成人永久看片免费视频天堂| 国产日韩成人内射视频 | 亚洲大胆在线| 日韩小视频在线| 亚洲精品久久久久久无码色欲四季| 亚洲成在人线在线播放| 亚洲精品一区二区三区影院忠贞| 国产美女在线精品| 精品www久久久久奶水| 91精品国产自产拍在线观看蜜 | 六月婷婷中文字幕| 欧美自拍偷拍午夜视频| 免费无遮挡无码永久在线观看视频 | 欧美日一区二区在线观看 | 亚洲欧美日韩偷拍| 蜜臀久久99精品久久久久久9| 日韩精品在线观看av| 日本道不卡免费一区| 国产日本一区二区三区| 欧美视频在线视频精品| 78色国产精品| 麻豆电影在线播放| 亚洲少妇激情视频| 欧美自拍偷拍一区二区| 欧美一区国产二区| 中文在线观看免费高清| 福利视频导航一区| 久久黄色免费网站| 一区在线观看视频| 中文字幕第4页| 99久久免费视频.com| 五月天婷婷在线观看视频| 男人天堂欧美日韩| 成人精品视频在线播放| 欧美一区亚洲| 亚洲欧美日韩精品在线| 亚洲色图丝袜| 久久久一本精品99久久精品| 91免费精品国偷自产在线在线| 国产欧美日韩91| 在线国产成人影院| 国产97在线亚洲| 亚洲精品88| 2021国产精品视频| 免费在线小视频| 久久久久久亚洲精品| 欧美日韩经典丝袜| 欧美另类69精品久久久久9999| 免费在线毛片网站| 亚洲视频一区二区| www免费网站在线观看| 亚洲欧美一区二区三区四区 | 欧美成人午夜激情在线| 麻豆视频在线免费观看| 久久久99免费视频| h片在线播放| 两个人的视频www国产精品| 福利视频在线| 欧美国产日本在线| 182在线播放| 性色av一区二区三区| 九色porny自拍视频在线播放| 国内精品美女av在线播放| www在线观看播放免费视频日本| 久久久精品电影| 色婷婷视频在线观看| 欧美激情视频在线| av免费不卡| 国产成+人+综合+亚洲欧美丁香花| 在线亚洲人成| 国产精品1区2区在线观看| 国产精品99久久久久久董美香 | 毛片毛片毛片毛| 韩国欧美国产1区| 国产精品19p| av电影在线观看一区| 国产一区二区三区四区五区六区 | 少妇人妻无码专区视频| 校园激情久久| 浓精h攵女乱爱av| 国产在线精品一区二区不卡了| japan高清日本乱xxxxx| 99re这里都是精品| 波多野结衣一二三四区| 亚洲欧美激情在线| 色播视频在线播放| 欧美性猛片xxxx免费看久爱| 国产精品探花视频| 亚洲精品国产拍免费91在线| 国产精品影院在线| 欧美成人午夜激情视频| 亚洲精品中文字幕| 91精品免费看| 欧亚精品一区| 在线视频一区观看| 国产精品普通话对白| 欧美日韩一区二区三区69堂| 国产精品一区免费在线观看| 一级性生活大片| 亚洲女同一区二区| 亚洲天堂视频网站| 欧美一区二区在线免费播放| 日本一卡二卡四卡精品| 久久精品在线视频| 欧美私密网站| 91入口在线观看| 九九热爱视频精品视频| 国产成人亚洲综合无码| 日一区二区三区| 在线免费看黄色片| 亚洲视频在线一区二区| 无码人妻久久一区二区三区| 日韩一级视频免费观看在线| 男女视频在线观看免费| 欧美xxxx做受欧美| 老司机精品视频网| 久久免费看av| 国产精品观看| 亚洲黄色小视频在线观看| www.日韩精品| 亚洲色婷婷一区二区三区| 在线观看成人小视频| 黄色小视频免费观看| www.国产精品一二区| 亚洲伊人av| 精品免费国产| 国产一区二区三区四区老人| 成人性生交免费看| 国产日韩av一区| 久久国产视频精品| 精品成人一区二区三区四区| 好了av在线| 国产精品中文字幕在线| 四虎影视精品| 日韩a∨精品日韩在线观看| 国产精品一二一区| 懂色av粉嫩av蜜臀av一区二区三区| 欧美日韩一区二区在线播放| 黄色片一区二区三区| 欧美黑人又粗大| 精品久久亚洲| 国产精品夜夜夜爽张柏芝| 蜜桃视频第一区免费观看| 免费看91的网站| 色婷婷综合久久| 免费av在线电影| 欧美资源在线观看| 亚洲精品合集| 国产免费成人在线| 久久综合九色综合欧美亚洲| 免费日韩一级片| 亚洲精品日韩丝袜精品| 人成在线免费网站| 蜜桃av噜噜一区二区三| 国产精品入口66mio| 国产一级二级在线观看| 欧美视频在线视频| 激情小视频在线| 国产精品高精视频免费| 精品无人区麻豆乱码久久久| 自拍偷拍 国产| 国产精品网友自拍| 一级淫片免费看| 欧美xxxx做受欧美.88| 97久久综合区小说区图片区| 精品久久久久久无码中文野结衣| 成人h精品动漫一区二区三区| 国产精品变态另类虐交| 亚洲黄一区二区| 国产精欧美一区二区三区蓝颜男同| 久久久久欧美| 免费高清视频精品| 中国毛片直接看| 欧美成人在线直播| 成入视频在线观看| 欧洲一区二区日韩在线视频观看免费 | 亚洲第一福利视频在线| 视频三区在线观看| 国产高清视频一区三区| 999国产精品视频| 久久av一区二区三| 大伊人狠狠躁夜夜躁av一区| 国产免费av在线| 成人免费高清完整版在线观看| 欧美日韩理论| 精品无码国产污污污免费网站 | 神马午夜精品95| 国产成人精品久久久| 三区四区不卡| 国产精品一级无码| 欧美日韩亚洲一区二区三区| av在线免费观看网| 96久久精品| 日日骚欧美日韩| 免费三片在线播放| 国产午夜精品视频免费不卡69堂| 榴莲视频成人app| 男人天堂网视频| 亚洲人成伊人成综合网小说| 亚洲欧洲精品视频| 国产日韩欧美在线| 在线日韩视频| 亚洲国产精品一区二区久久hs| 日韩欧美亚洲国产另类| 日韩大尺度黄色| 黄网站色视频免费观看| 久久精品男人的天堂| 精品人妻一区二区三区含羞草| 日韩av免费在线观看| 国户精品久久久久久久久久久不卡| 日本一区二区三区网站| 欧美一区二区三区小说| 日韩欧美精品电影| 国产一区二区三区小说| 中文字幕一区二区三区av| 少妇性bbb搡bbb爽爽爽欧美|