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

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.
主站蜘蛛池模板: 青川县| 和平区| 昔阳县| 五峰| 福州市| 北流市| 涞源县| 灯塔市| 滕州市| 白河县| 阳泉市| 工布江达县| 建湖县| 勐海县| 六枝特区| 华容县| 宁蒗| 广灵县| 克山县| 邵阳县| 马龙县| 尉氏县| 随州市| 凉城县| 措勤县| 文安县| 沁水县| 大方县| 贵溪市| 大丰市| 宁德市| 通榆县| 泗水县| 平武县| 轮台县| 九台市| 牟定县| 茌平县| 陆河县| 安岳县| 历史|