Próbuję napisać prosty fmt.Fprintf owijkę, która trwa zmienną liczbę argumentów, oto kod:go - o zmiennej liczbie argumentów parametry funkcji pass-through
func Die(format string, args ...interface{}) {
str := fmt.Sprintf(format, args)
fmt.Fprintf(os.Stderr, "%v\n", str)
os.Exit(1)
}
Ale kiedy dzwonię go:
Die("foo")
uzyskać:
foo%!(EXTRA []interface {}=[])
Nie mogę zrozumieć, dlaczego otrzymuję ten tekst po "foo" & jaki jest prawidłowy sposób tworzenia wrapperów wokół fmt.Fprintf?
BTW, funkcja Die ponownie realizuje to, co [log.Fatal] (http://golang.org/pkg/log/#Fatal) i/lub [log.Logger.Fatalf] (http: // golang. org/pkg/log/# Logger.Fatalf) są gotowe do wykonania. – zzzz