情况:
我正在尝试编写一个简单的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%!(额外 [] 接口 {}=[])
- 为什么在“ foo ”之后有“ %!(EXTRA []interface {}=[]) ”?
- 创建包装器的正确方法是什么
fmt.Fprintf
?