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

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.

主站蜘蛛池模板: 噶尔县| 定安县| 普兰店市| 库尔勒市| 简阳市| 汽车| 秦皇岛市| 义马市| 富川| 大新县| 原阳县| 如皋市| 桃园市| 日喀则市| 澄迈县| 嘉定区| 贵南县| 永仁县| 大姚县| 枝江市| 孝义市| 雷波县| 泰来县| 那坡县| 南陵县| 保靖县| 石台县| 北流市| 增城市| 两当县| 怀安县| 库伦旗| 潜山县| 梁山县| 长沙县| 巴南区| 永善县| 汕头市| 梅州市| 汨罗市| 大关县|