有没有办法在fmt.Printf中重用一个参数?

时间:2014-10-29 07:20:08

标签: go printf

我有一种情况,我想两次使用printf参数。

fmt.Printf("%d %d", i, i)

有没有办法告诉fmt.Printf重复使用相同的i

fmt.Printf("%d %d", i)

2 个答案:

答案 0 :(得分:44)

您可以使用[n]表示法来指定显式参数索引,如下所示:

fmt.Printf("%[1]d %[1]d\n", i)

以下是您可以试验的完整示例:http://play.golang.org/p/Sfaai-XgzN

答案 1 :(得分:0)

另一个选项是text/template

package main

import (
   "strings"
   "text/template"
)

func format(s string, v interface{}) string {
   t, b := new(template.Template), new(strings.Builder)
   template.Must(t.Parse(s)).Execute(b, v)
   return b.String()
}

func main() {
   i := 999
   println(format("{{.}} {{.}}", i))
}