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

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.
主站蜘蛛池模板: 新疆| 吴江市| 屯留县| 博白县| 佛山市| 鹤峰县| 漯河市| 黎川县| 长乐市| 基隆市| 旬邑县| 邻水| 崇礼县| 黎平县| 溧水县| 土默特左旗| 平顺县| 福清市| 高要市| 班玛县| 稷山县| 惠安县| 浙江省| 日喀则市| 泽州县| 河曲县| 阜南县| 奎屯市| 永吉县| 安福县| 雷州市| 乃东县| 黔东| 金坛市| 瑞金市| 吴江市| 宽甸| 东港市| 衡水市| 耿马| 岗巴县|