.net 使用相同的值填充多个printf格式占位符

.net 使用相同的值填充多个printf格式占位符,.net,f#,printf,string-formatting,.net,F#,Printf,String Formatting,使用.NET字符串格式,可以将相同的值多次插入到格式字符串中: Console.Write("{0}{0}{0}", 1) //prints "111" printf样式的格式是否有办法做到这一点,只提供一次值?否。值在传递到函数时,从堆栈中按顺序获取。如果希望字符串的不同部分具有相同值的多个外观,则必须按顺序多次提供它们 可以这样想:您有一个字符串,带有标记,以及一个要插入的内容列表来替换这些标记。由于列表必须按外观顺序排列,如果要用相同的值替换两个标记,则该值必须显示两次 现在,请记住,复

使用.NET字符串格式,可以将相同的值多次插入到格式字符串中:

Console.Write("{0}{0}{0}", 1) //prints "111"

printf样式的格式是否有办法做到这一点,只提供一次值?

否。值在传递到函数时,从堆栈中按顺序获取。如果希望字符串的不同部分具有相同值的多个外观,则必须按顺序多次提供它们

可以这样想:您有一个字符串,带有标记,以及一个要插入的内容列表来替换这些标记。由于列表必须按外观顺序排列,如果要用相同的值替换两个标记,则该值必须显示两次


现在,请记住,复制参数并不一定意味着复制实际数据。

我从未想过我会这么说。我正在生成SQL并经常连接到同一个表。我讨厌反复输入那个表名。希望printf能帮上忙。但是,由于我不得不用类型推断来换取更少的类型,我想我会勉强接受类型推断。Python是元编程之王,我使用短(<10行)Python程序创建了我的大部分样板代码。下次再试试,看看你是否喜欢!旁白:我认为我们可能会保留以-
$
或类似内容开头的运算符,以便在将来的版本中,我们可能会添加诸如
$“foo:$bar$qux$bar”
之类的语法,其中
$name
将环境中的
name
的值注入
$/code>字符串文本。明确地说,我们短期内没有实际计划这样做,但我们明确地在语言语法设计中保留了一些空白,以便将来可能做类似的事情。“脚本”通常很适合在字符串格式中使用速记/精确性。@Brian-字符串插值似乎非常适合F#。