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

  • Learning Rust
  • Paul Johnson Vesa Kaihlavirta
  • 271字
  • 2021-07-02 23:07:21

Positioning the output

One of the more useful extensions in C# is string.Format(...);. This allows for a string to be constructed based on parameters at particular positions. For example, the following statement constructs a string where the parameter at a position after the string literal is inserted into the string (here, the letter B is inserted twice in the middle of the string and then at the end):

var myString = string.Format("Hello {0}, I am a {1}{1}{2} computer model {1}", name, "B", "C"); 

Rust also supports this form, but with the difference that the positioning may be omitted.

Consider the following examples:

format!("{} {}", 2, 10); // output 2 10 
format!("{1} {} {0} {}", "B", "A"); 

The first example is what we've seen before. The format string gets filled with the parameters on the right, in order.

In the second example, it would seem that we're asking for four parameters, but have only supplied two. The way this works is that the positional arguments are ignored when filling in the non-positional arguments. Indexing, as is usual in programming, starts at zero. This is how the arguments are processed:

  • {1} inserts the second parameter A
  • {} inserts the first parameter B
  • {0} inserts the first parameter B
  • {} inserts the second parameter A

Therefore, the output is going to be A B B A.

The following are the two important rules governing the positional parameters:

  1. All of the arguments within the quotes must be used. Failure to do so will result in a compiler error.
  2. You can refer to the same argument as many times as you like within the format string.
主站蜘蛛池模板: 甘孜县| 封丘县| 临湘市| 阿尔山市| 虎林市| 枣庄市| 石门县| 仙游县| 黑水县| 孝感市| 镇赉县| 融水| 鹤庆县| 郴州市| 密山市| 澄城县| 舟曲县| 古蔺县| 绥棱县| 湘乡市| 泾源县| 莱州市| 全州县| 察雅县| 如皋市| 楚雄市| 宁夏| 朝阳市| 沿河| 镇赉县| 祁门县| 田阳县| 大田县| 高密市| 平果县| 台前县| 冕宁县| 长子县| 绥芬河市| 黔江区| 嘉禾县|