情况:
我正在尝试编写一个简单的fmt.Fprintf
包装器,它可以接受可变数量的参数。以下是代码:
func Die(format string, args ...interface{}) {
str := fmt.Sprintf(format, args)
fmt.Fprintf(os.Stderr, "%v\n", str)
os.Exit(1)
}
问题:
当我使用 Die("foo")
调用它时,我得到了以下输出(而不是 "foo"):
foo%!(EXTRA []interface {}=[])
- 为什么在 "foo" 后面有 "%!(EXTRA []interface {}=[])"?
- 如何正确地创建
fmt.Fprintf
的包装器?