問題:
對於喜歡方便的人,將多個變數傳遞給Sprintf 函數可能很乏味。嘗試對字串切片執行此操作時,可能會出現「cannot use v (type []string) as type []interface {} in argument to fmt.Printf」之類的錯誤。
解決方案:
要解決此問題,請將您的切片聲明為 []interface{},並將其與 Sprintf 的預期參數類型對齊。 Sprintf 的簽名指定:
<code class="go">func Printf(format string, a ...interface{}) (n int, err error)</code>
實現:
<code class="go">s := []interface{}{"a", "b", "c", "d"} fmt.Printf("%5s %4s %3s\n", s[1], s[2], s[3]) v := s[1:] fmt.Printf("%5s %4s %3s\n", v...)</code>
解釋:
輸出:
b c d b c d
附加說明:
如果需要超過10個參數,只需要超過10個參數,只需根據需要調整切片中的元素數量即可。解決方案保持不變。
以上是如何使用切片將多個變數傳遞給 Go 的 Sprintf 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!