為什么這個 panicf-sprintf在 Golang 1.11 中導致類型錯誤?Go 沒有解釋原因,即使它說這是一個常見的錯誤。https://golang.org/doc/go1.11#vetgo vet現在在構建期間強制執行。func panicf(s string, i ...interface{}) { panic(fmt.Sprintf(s, i)) }測試正在返回missing ... in args forwarded to printf-like functionvet將其描述為func (*ptrStringer) BadWrap(x int, args ...interface{}) string { return fmt.Sprint(args) // ERROR "missing ... in args forwarded to print-like function"}func (*ptrStringer) BadWrapf(x int, format string, args ...interface{}) string { return fmt.Sprintf(format, args) // ERROR "missing ... in args forwarded to printf-like function"請幫忙解釋一下...這方面的golang 。這是一個功能性的游樂場:https ://play.golang.org/p/DijjanQNkxK
1 回答

Cats萌萌
TA貢獻1805條經驗 獲得超9個贊
panicf()
接受i
作為可變參數,與fmt.Sprintf()
. 因此,您必須告訴編譯器您希望將 的每個值i
發送到,fmt.Sprintf()
而不是將整個值作為一個切片發送。
所以把代碼改成:
func panicf(s string, i ...interface{}) { panic(fmt.Sprintf(s, i...)) }
- 1 回答
- 0 關注
- 173 瀏覽
添加回答
舉報
0/150
提交
取消