grrs 的首次運行

在完成命令列參數章節後,我們學到了如何取得輸入參數,和我們可以開始準備實作寫出工具了。

目前我們的 main 函數中僅有一行:

    let args = Cli::parse();

(我們刪除暫時放在那裡的 println 語句,得以證明我們的程式如預期般運作。)

讓我們先開啟我們得到的文件。

    let content = std::fs::read_to_string(&args.path).expect("could not read file");

現在,讓我們疊代一下這些行並輸出包含每一個我們的模式:

    for line in content.lines() {
        if line.contains(&args.pattern) {
            println!("{}", line);
        }
    }

總結

你的程式碼現在看起來應該是這樣的:

use clap::Parser;

/// Search for a pattern in a file and display the lines that contain it.
#[derive(Parser)]
struct Cli {
    /// The pattern to look for
    pattern: String,
    /// The path to the file to read
    path: std::path::PathBuf,
}

fn main() {
    let args = Cli::parse();
    let content = std::fs::read_to_string(&args.path).expect("could not read file");

    for line in content.lines() {
        if line.contains(&args.pattern) {
            println!("{}", line);
        }
    }
}

來試試: cargo run -- main src/main.rs 是否能運行!