W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
ch12-00-an-io-project.md
commit db919bc6bb9071566e9c4f05053672133eaac33e
本章既是一個目前所學(xué)的很多技能的概括,也是一個更多標(biāo)準(zhǔn)庫功能的探索。我們將構(gòu)建一個與文件和命令行輸入/輸出交互的命令行工具來練習(xí)現(xiàn)在一些你已經(jīng)掌握的 Rust 技能。
Rust 的運行速度、安全性、單二進制文件輸出和跨平臺支持使其成為創(chuàng)建命令行程序的絕佳選擇,所以我們的項目將創(chuàng)建一個我們自己版本的經(jīng)典命令行工具:grep
。grep 是 “Globally search a Regular Expression and Print.” 的首字母縮寫。grep
最簡單的使用場景是在特定文件中搜索指定字符串。為此,grep
獲取一個文件名和一個字符串作為參數(shù),接著讀取文件并找到其中包含字符串參數(shù)的行,然后打印出這些行。
在這個過程中,我們會展示如何讓我們的命令行工具利用很多命令行工具中用到的終端功能。讀取環(huán)境變量來使得用戶可以配置工具的行為。打印到標(biāo)準(zhǔn)錯誤控制流(stderr
) 而不是標(biāo)準(zhǔn)輸出(stdout
),例如這樣用戶可以選擇將成功輸出重定向到文件中的同時仍然在屏幕上顯示錯誤信息。
一位 Rust 社區(qū)的成員,Andrew Gallant,已經(jīng)創(chuàng)建了一個功能完整且非常快速的 grep
版本,叫做 ripgrep
。相比之下,我們的 grep
版本將非常簡單,本章將教會你一些幫助理解像 ripgrep
這樣真實項目的背景知識。
我們的 grep
項目將會結(jié)合之前所學(xué)的一些內(nèi)容:
另外還會簡要的講到閉包、迭代器和 trait 對象,他們分別會在 第十三章 和 第十七章 中詳細(xì)介紹。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: