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ụ.