Tôi đang cố gắng để viết wrapper fmt.Fprintf đơn giản mà mất số biến của các đối số, đây là mã:Go - thông số chức năng variadic pass-through
func Die(format string, args ...interface{}) {
str := fmt.Sprintf(format, args)
fmt.Fprintf(os.Stderr, "%v\n", str)
os.Exit(1)
}
Nhưng khi tôi gọi đó là:
Die("foo")
tôi nhận được:
foo%!(EXTRA []interface {}=[])
Không thể hiểu tại sao tôi nhận được văn bản này sau "foo" & cách chính xác để tạo trình bao bọc xung quanh fmt.Fprintf là gì?
BTW, hàm Die thực hiện lại những gì [log.Fatal] (http://golang.org/pkg/log/#Fatal) và/hoặc [log.Logger.Fatalf] (http: // golang. org/pkg/log/# Logger.Fatalf) đã sẵn sàng cho. – zzzz