Đọc các đối số dòng lệnh

Rust:
Đọc các đối số dòng lệnh

Cách thực hiện:

Đây là cách đơn giản nhất để lấy các đối số:

use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();
    println!("{:?}", args);
}

Chạy nó với cargo run arg1 arg2. Bạn sẽ thấy:

["path/to/executable", "arg1", "arg2"]

Một tùy chọn gọn gàng hơn với bộ lặp (iterators):

use std::env;

fn main() {
    for arg in env::args().skip(1) {
        println!("{}", arg);
    }
}

Bây giờ thử cargo run cool stuff:

cool
stuff

Tìm hiểu kỹ lưỡng

Lịch sử, các đối số dòng lệnh là hồi tưởng về những ngày mà giao diện đồ họa không phổ biến. Bây giờ, chúng tốt cho các kịch bản (scripts), máy chủ, hoặc công cụ.

std::env::args của Rust sử dụng bộ lặp (iterator), hiệu quả về mặt bộ nhớ và hoạt động một cách lười biếng (lazy). Nó cũng xử lý Unicode. Có thêm args_os cho các chuỗi OS thô.

Đối với việc phân tích phức tạp, các crate như clap hoặc structopt rất hữu ích. Chúng phân tích cờ lệnh, tùy chọn, và các lệnh phụ.

Xem thêm