官术网_书友最值得收藏!

How it works...

Let's go through the code to understand the execution flow.

cargo is described in depth in Chapter 2Managing Projects with Cargo, in this book.

The initial snippet is generated when cargo new hello-world is executed in step 1. As a project of type binary, a main function is required and rustc will be looking for it. Upon calling cargo run, cargo orchestrates compilation (with rustc) and linking (msvc on Windows, cc on *nix) and runs the resultant binary via its entry point: the main function (step 5). 

In the function we create in step 3, we write a series of print!/println!/eprintln! statements, which are Rust macros. These macros facilitate the writing to the standard output or standard error channels of a command-line application and include additional arguments. In fact, if arguments are missing, the compiler won't compile the program.

Rust's macros work directly on the syntax tree of the language, providing type safety and the ability to check the parameters and arguments. Therefore, they can be seen as a function call with a few special abilities—but more on that in Chapter 6, Expressing Yourself with Macros.   

The various arguments and the template string are combined using formatters, a powerful way to add real variables to the output without the need of concatenations or similar workarounds. This will reduce the number of allocations, considerably improving performance and memory efficiency. There is a wide range of how to format data types; to understand it more deeply, check out Rust's excellent documentation (https://doc.rust-lang.org/std/fmt/). 

The last step then shows the output that the various combinations produced.

We've successfully learned to work with the command line I/O. Now, let's move on to the next recipe.

主站蜘蛛池模板: 章丘市| 宁陕县| 宝山区| 黎平县| 洞头县| 拜泉县| 佛教| 宽城| 都江堰市| 济源市| 张家港市| 铜山县| 宽甸| 连州市| 安化县| 榆社县| 社会| 赤峰市| 贡嘎县| 白河县| 六安市| 大竹县| 报价| 宝山区| 成安县| 蒙山县| 崇文区| 禄丰县| 陆良县| 西丰县| 潢川县| 萨嘎县| 东光县| 资阳市| 平乐县| 博乐市| 兖州市| 新龙县| 绥德县| 荥经县| 遂宁市|