使用.NET字符串格式化,您可以将相同的值多次插入格式化字符串中:Console.Write("{0}{0}{0}", 1) //prints "111" 有没有一种用printf样式格式化的方法,只提供一次值就可以实现这个功能?
不行。传递给函数的值是按顺序从堆栈中获取的。如果您想在字符串的不同部分多次出现相同的值,则必须按顺序多次提供它们。可以这样理解:您有一个带有标记的字符串和一个要插入以替换这些标记的内容列表。由于列表必须按照出现的顺序排列,因此如果您想用相同的值替换两个标记,则该值必须出现两次。现在,请记住,复制参数并不一定意味着复制实际数据。
$
开头的运算符或类似的东西,特别是在某个未来版本中,我们可能会添加诸如$“foo: $bar $qux $bar”
这样的语法,其中$name
将环境中的name
值注入到$
字符串文字中。 明确地说,我们短期内没有实际计划这样做,但我们明确保留了语言语法设计中的某种空白空间,以便将来可能做出这样的事情。 一般来说,“脚本化”通常很适合想要在字符串格式化中使用简写/美观的方式。 - Brian