在 Go 程式設計中,fmt.Sprintf 函數用於格式化字串。但是,當輸入字串包含意外欄位時,就會出現問題,導致恐慌。
讓我們考慮以下程式碼片段:
<code class="go">package main import "fmt" func main() { tmp_str := "hello %s" str := fmt.Sprintf(tmp_str, "world") fmt.Println(str) }</code>
在此範例中, tmp_str 是一個需要單一參數的範本字串。但是,如果程式收到像「Hello Friends」這樣的完整字串(而不是模板),則 fmt.Sprintf 將因存在額外參數而發生恐慌。錯誤訊息為:
Hello Friends%!(EXTRA string=world)
處理此問題的一種方法是強制在模板字串中使用有效的 %s 動詞。使用者可以提供佔位符動詞,例如 %.0s 或 %.s,以指示如果不存在匹配字段,參數將被截斷為零長度。這是一個範例:
<code class="go">tmp_str := "Hello Friends%.s"</code>
使用 %.s 將截斷任何額外字段,從而產生所需的輸出:
Hello Friends
以上是如何處理 fmt.Sprintf 中的意外欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!