- Learning Rust
- Paul Johnson Vesa Kaihlavirta
- 266字
- 2021-07-02 23:07:22
Command-line arguments
When a program is started, it can be started with or without arguments. These arguments are normally fed in as parameters when the program is called. A simple example of this is starting the manual application (found on many BSD and Linux machines):
man ffmpeg
In the preceding statement, man is the name of the program or script to be called with the argument ffmpeg. Similarly, take a look at the following example for Windows users:

Notepad is the program name with the first argument being the file to read in (in this example, the file doesn't exist, so the UI asks if you wish to create it).
It is not uncommon for one program to load another program to perform a task.
In C, the parameter list for main is given as follows:
int main(int argc, char *argv[])
argc is the maximum number of arguments with argv holding the arguments. Here, the program name is argv[0], so all additional arguments start at 1.
Rust's main takes no arguments like this. Command-line parameters are available through the standard library std::env::args (environment arguments). For simplicity, it is convenient to store the arguments in Vec<String>, because env::args returns an iterator that yields a String.
No parameters are passed into main directly:
// 03/args/src/main.rs
use std::env; fn main() { let args: Vec<String> = env::args().collect(); println!("There was {:?} arguments passed in. They were {:?}.", args.len() - 1, &args[1..]); }
The collect method converts the iterator into a vector, making it possible to access it by indexing. Without it, we would have to go through the arguments one by one.
- JavaScript百煉成仙
- 大學計算機應用基礎實踐教程
- C語言程序設計案例教程(第2版)
- Three.js開發指南:基于WebGL和HTML5在網頁上渲染3D圖形和動畫(原書第3版)
- 區塊鏈:以太坊DApp開發實戰
- 深度學習:算法入門與Keras編程實踐
- BIM概論及Revit精講
- Python數據結構與算法(視頻教學版)
- Building Wireless Sensor Networks Using Arduino
- Node.js開發指南
- C++ Fundamentals
- Django Design Patterns and Best Practices
- Modernizing Legacy Applications in PHP
- Python預測分析與機器學習
- Effective C++:改善程序與設計的55個具體做法(第三版)中文版(雙色)